Nginxの設定メモ

nginxは unicorn のフロントとしての利用がメインで、あまり使いこなしていないので、細かいことは分かりません…。ひとまず、メンテナンスのため errorページの調整をしたので、そのメモです。

* * *

Redmineをメンテナンスで停止している間は、全てのリクエストを nginx側で受ける形にするため、nginx.conf でRedmine用の設定をincludeしている部分をコメントアウトします。

#gzip  on;
#include /etc/nginx/conf.d/redmine.conf;

また、nginxのRedmineのDocumentRootのindex.html を、メンテナンスの文面を書いた maintenance.html に変更します。
(nginxのDocumentRootは、私の場合は /usr/local/nginx/html です)

location / {
            client_max_body_size 20M;
            root   html;
            index  maintenance.html; # maintenance.html にする
        }

エラーページ(Not FoundやInternal Server Error)も、maintenance.html に振ってしまいます。

error_page  404              /maintenance.html;
error_page   500 502 503 504  /maintenance.html;
location = /50x.html {
    root   html;
}

Unicornとのプロキシを停止している間は、RedmineのチケットやマイページのURLへアクセスした場合は、Not found (404) になるので、こちらも「メンテナンスのためだよ」とお知らせするために、上記の設定にしました。

もっとスマートな(カッコいい!)方法があるかと思いますが、最低限の対応はこのような感じでした。設定の反映は、nginx reload でOK。

今回は、エラーページはnginxのDocumentRoot以下にあるものを使いました。でも、RewriteやRedirectを使えたりするので、別途アナウンスを管理するWebサーバがあるなら、そちらに転送したりすることも可能かと思っています。

コメント

人気の投稿