[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
Creative Commons Attribution Share Alike 4.0 で公開されている資料の訳を載せている。この記事も同様のライセンスとなる。
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.confNGINX が HUP シグナルを受け取った際、NGINX は新しい設定ファイルを解析します (引数として新しいもののパスを与えていなければ default のものを解析します)。解析に成功すれば、新しい設定ファイルを適用します (例えばログファイルを開きなおしたり、Socket を listen しなおしたり)。成功すれば NGINX は新しい Worker Process を起動し、古い Worker Process は安全にシャットダウンします。古い Worker によって Listen されていた Socket は閉じられますが、クライアントの動作は続行します。最終的にはすべての古い Worker がシャットダウンされます。もし、NGINX が新しい設定ファイルの適用に失敗すれば、古い設定ファイルのママ動作を続けます。
どうもこの Worker の終了・作成がうまくいっていない?
ただいまコメントを受けつけておりません。