点検作業などでNginxサイトをメンテナンス状態に設定する。
httpはhttpsにリダイレクトする設定を行っているとする。
/etc/nginx/conf.d/www.confを以下のように編集。
geo $access_from { default external; # 外部のIPからはメンテナンスに設定 111.222.333.444 internal; # 特定のIPはメンテナンスにならないように指定することが可能 } server { listen 80; server_name hogehoge.com; return 301 https://$host$request_uri; } server { listen 443 default ssl; ssl on; server_name hogehoge.com; root /var/www/html; error_page 503 @maintenance; set $maintenance false; if (-e /var/www/html/maintenance.html) { set $maintenance true; } if ($access_from !~ external) { set $maintenance false; } if ($maintenance = true) { return 503; } location @maintenance { root /var/www/html; expires 0; # キャッシュさせない rewrite ^(.*)$ /maintenance.html break; } ... }
この後、/var/www/html配下にメンテナンスページ用のmaintenance.htmlを作成し、配置する。