状況
本番の nginx 設定変更作業。作業者が手順書を読み上げている。
ダブルチェッカーとして最初に止めるべき点は?
1. cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak2. 新しい設定を /etc/nginx/nginx.conf に反映する3. sudo systemctl restart nginx4. sudo nginx -t で設定の文法を確認する5. curl -I https://www.example.com/ で応答を確認する正答
- 文法確認(4)が再起動(3)より後にあり、誤りがあれば全停止する
- バックアップは .bak ではなく、日付を付けた名前にすべき
curl -Iでは本文が返らないので、動作確認としては不十分- nginx -t は一般ユーザーで実行すべきで、sudo は付けない
解説
nginx -t は設定ファイルの文法と参照先を確かめるコマンドで、反映の前に実行して初めて意味がある。誤った設定のまま restart すると、旧プロセスが止まった後に新しいプロセスが起動できず、サイト全体が止まる。reload なら設定エラー時は旧設定のまま動き続けるが、まずは確認を先にするのが基本。バックアップ名や curl の確認方法は改善点ではあるが、全停止につながる順序の誤りより優先度は低い。
参考: nginx.org
この問題を含む 危険察知 のテストを制限時間つきで解く
危険察知クイズへ