IT記事、時々ぼのぼの

ぼのぼのに毎日癒されつつ仕事しているエンジニアのブログです。


Nginxでのメンテナンスページ表示設定について

アクセスされるURLに関係なく、メンテナンス用のページを表示させるための設定を記載します。

前提知識

サイトのメンテナンス時にはステータスコード「503」で返すことが作法となりますので、以下のサイトを参考にご注意ください。
【事例】メンテナンス時はステータスコード503にしないとすごいことになる | Next Generation SEO

メンテナンス設定の有効化

Nginxのコンフィグファイルに以下の内容を記載し、ドキュメントルート下の[/usr/share/nginx/html/maintenance]にメンテナンス時に表示させたいページを配置します。(503.htmlがメンテ時に表示される。)

※メンテナンス用の設定部分のみ記載しております

server {

    listen       443;

    root /usr/share/nginx/html;

    #ここのスイッチを [true] or [false] でメンテの切り替え可能 
    set $go_maintenance "true";

    if ($uri ~ "^/maintenance/.*") {
        set $go_maintenance "false";
    }

    error_page 404 503 /maintenance/503.html;
    location /maintenance/ {}
    if ($go_maintenance = "true") { return 503; }

}

使い方

一番最初の [set $go_maintenance "true";] を"true"に変更し、Nginxをリロードします。

# service nginx reload