Nginxでメンテナンスページの設定をする
Nginxでメンテナンスページを表示する設定について
環境
設定
- maintenance.htmlを配置する
/var/www/html/maintenance.html
- 503レスポンスのときに動作を定義する
error_page 503 @maintenance;
@maintenance
の処理を定義するrewrite ^(.*)$ /maintenance.html break;
maintenance.htmlのファイルが存在したら、503を返すように設定し、
@maintenance
の処理を実行させる- メンテナンス時に
maintenance.html
をセットする
- メンテナンス時に
if (-e /var/www/html/maintenance.html) { set $maintenance true; } if ($maintenance = true) { return 503; }
■ /etc/nginx/sites-enabled/test.conf
1 server { 2 listen 80 default_server; 3 listen [::]:80 default_server; 4 5 root /var/www/html; 6 index index.html index.htm index.nginx-debian.html; 7 server_name X.X.X.X; 8 error_page 503 @maintenance; 9 10 if (-e /var/www/html/maintenance.html) { 11 set $maintenance true; 12 } 13 if ($maintenance = true) { 14 return 503; 15 } 16 17 location / { 18 try_files $uri $uri/ =404; 19 } 20 21 location @maintenance { 22 rewrite ^(.*)$ /maintenance.html break; 23 } 24 }
■ curlで叩くと以下がレスポンスがかえってきた
<html> <p> This is Maintenance Page </p> </html>