Nginxでメンテナンスページの設定をする
Nginxでメンテナンスページを表示する設定について
環境
- OS
- Ubuntu 16.04.4 LTS
- nginx
- nginx version: nginx/1.10.3 (Ubuntu)
設定
-
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>