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サーバがあるなら、そちらに転送したりすることも可能かと思っています。
コメント
コメントを投稿