« rubyでhtmlを解析 | メイン | Capistrano のタスクをフックする »

Capistrano で簡単にメンテナンス画面表示

[rails] [capistrano] [deploy]

システムメンテナンスのため、一時サービスを停止したいとき、Capistranoで簡単にメンテナンス画面を表示させる事ができます。

まずは、.htaccessを編集して、


  RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
  RewriteCond %{SCRIPT_FILENAME} !maintenance.html
  RewriteRule ^.*$ /system/maintenance.html [L]

1 : %{DOCUMENT_ROOT}/system/maintenance.html が存在し、
2 : 且つ、自分自身(実行ファイル自身)が maintenance.html でなければ、
3 : URLを/system/maintenance.html に書き換える。

という設定をします。(※番号は設定ファイルの行に対応)


  rake remote:disable_web \
          UNTIL="14:00 MST" \
          REASON="a database upgrade"

上記のコマンドを実行すると、本番サーバー上の、CAPROOT/current/public/system (CAPROOT/shared/system へのシンボリックリンク) に、maintenance.html というファイルが生成されます。これで完了。

アクセスしてみるとこんな感じ。

disable_web.jpg


  rake remote:enable_web

これを実行すると、maintenance.html は削除され、元に戻ります。

参考URL

トラックバック

このエントリーのトラックバックURL:
http://i-am.web777.net/mt/mt-tb.cgi/22

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)