Nginxでメンテナンス画面を用意する
動機
Webアプリリリース時等に Nginx でメンテ画面に切り替えるのを簡単にやりたい リリースの一般開放前に動作確認をしたい
前提
503エラー時にはメンテ画面とする
mainte.tmp ファイルが置かれたらメンテ画面とする
特定IPからのアクセスはメンテ画面にせず通す(メンテ解除前に動作確認する用)
nginxの設定
code:app.conf
server {
(略)
error_page 503 /503.html;
location = /503.html {
root /var/www-data/static/html;
rewrite ^(.*)$ /maintenance.html break;
}
location / {
set $mainte 0;
if (-f /etc/nginx/conf.d/mainte.tmp) {
set $mainte 1;
}
if ($remote_addr = 203.152.213.161) {
# 特定IPからの場合メンテナンスモードにしない
set $mainte 0;
}
if ($mainte = 1) {
return 503;
}
}
(略)
}