capistranoには、以下のコマンドを実行する事で、メンテナンスページを用意する機能があります。

   1  % cap deploy:web:disable

コマンドを実行すると、デプロイ先のサーバ上で、shared/system/maintenance.html が生成されます。 shared以下のディレクトリは、public/の下にシンボリックリンクが作成されるので、 結果としてpublic/system/maintenance.htmlが準備される事になります。

しかし、capistranoがやってくれるのはここまでなので、 maintenance.htmlが存在した場合にそれを表示するようにするように、 Webサーバを設定する作業は自分でやる必要があります。 mod_railsとかでその辺まで面倒みてくれる感じになっていると楽なんですけどね。

その設定については、Apacheを使っている場合は以下のような感じにすればOKです。

   1  RewriteEngine On
   2  RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
   3  RewriteCond %{REQUEST_URI} !^/images/
   4  RewriteCond %{REQUEST_URI} !^/javascripts/
   5  RewriteCond %{REQUEST_URI} !^/stylesheets/
   6  RewriteRule ^.*$ /system/maintenance.html [L]
   7  RewriteRule ^/(images|javascripts|stylesheets)/(.*)$ /$1/$2 [L]

ちなみに、メンテナンスページを取り下げるには、以下のコマンドを実行します。

   1  % cap deploy:web:enable

これで、maintenance.htmlが削除されます。

See Also

posted by Png genki on Tue 23 Dec 2008 at 16:47
Contents
Apache+capistranoでメンテナンスページを表示する方法
Comments
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
tkawa: http://devcenter.heroku.com/articles/rails31_he... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ