忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/11    10« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »12

[愚痴] service nginx reload しても設定が再読み込みされない?

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

[愚痴] service nginx reload しても設定が再読み込みされない?

権利的な話とか

Creative Commons Attribution Share Alike 4.0 で公開されている資料の訳を載せている。この記事も同様のライセンスとなる。

nginx の設定再読み込みが思い通りに行かない

nginx の設定を可能な限り nginx を止めずに変更したい。SSL 証明書の更新とか、設定の追加とか。

しかし、どうにもうまくいかない。

# nginx とした後、設定ファイルを書き換えて # nginx -s reload でもだめ。~/newNginxConf/nginx.conf に新しい nginx.conf を置いて # nginx -c ~/newNginxConf/nginx.conf とかしてもダメ。

一応、 stop/start すれば問題なく反映はされるのだが……

関係するサイト

CommandLine | NGINX (Creative Commons Attribution Share Alike 4.0 で公開されている) の Loading a New Configuration Using Signals のあたりが関係するか。簡単に訳すと以下のようになる (翻訳元の版は 2017/3/6 日版)。

シグナルを用いて新しい設定を読み込む

NGINX はいくつかのシグナルもサポートしています。なので、これを使って NGINX を操作することもできます。

多くの場合、15番 (SIGTERM 終了) を NGINX の終了のために送信するでしょう。

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2213  0.0  0.0   6784  2036 ?        Ss   03:01   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

しかし、より注目すべき使い方があります。NGINX の設定ファイルを無停止で差し替えることができます (これをやる前に新しい設定ファイルのテストをお忘れなく)。

2006/09/16 13:07:10 [info]  15686#0: the configuration file /etc/nginx/nginx.conf syntax is ok
2006/09/16 13:07:10 [info]  15686#0: the configuration file /etc/nginx/nginx.conf was tested successfully
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2213  0.0  0.0   6784  2036 ?        Ss   03:01   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

NGINX が HUP シグナルを受け取った際、NGINX は新しい設定ファイルを解析します (引数として新しいもののパスを与えていなければ default のものを解析します)。解析に成功すれば、新しい設定ファイルを適用します (例えばログファイルを開きなおしたり、Socket を listen しなおしたり)。成功すれば NGINX は新しい Worker Process を起動し、古い Worker Process は安全にシャットダウンします。古い Worker によって Listen されていた Socket は閉じられますが、クライアントの動作は続行します。最終的にはすべての古い Worker がシャットダウンされます。もし、NGINX が新しい設定ファイルの適用に失敗すれば、古い設定ファイルのママ動作を続けます。

どうもこの Worker の終了・作成がうまくいっていない?

似たような話をしているサイト

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R