メンテナンスモードとは

APサーバへのアクセスを一時的に遮断し、メンテナンス中であることを示す静的なHTMLページを返す仕組みです。

メンテナンスモードは以下のような理由で使用します。

  • APサーバをサーバの再起動、プログラムの更新、夜間バッチ実行などのために一時的に停止したい
  • APサーバの停止中、接続不能状態にせずに、メンテナンス中である旨の日本語メッセージを表示したい
  • インターネットからアクセス可能な場合、接続不能状態を検索エンジンのクロール対象にしたくない
  • メンテナンス中であってもシステム管理者だけはアクセスできるようにしたい

構成要素

  • Apache httpd
    • mod_rewrite
  • APサーバ(Tomcatなど)

ここではWebサーバとしてApache httpdを使用していること、Apache-Tomcat連携などを使用してWebサーバ経由でAPサーバへアクセスしていることを想定しています。

実現方法

手順としては以下の2つになります。

  1. Webサーバにメンテナンス中であることを示すHTMLページを作成する
  2. HTTPステータスコードとして 503 を返す*1

具体的には .htaccess(またはhttpd.conf)で、次のように設定します。

ErrorDocument 503 /maintenance.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/maintenance.html
  RewriteCond %{REMOTE_ADDR} !=192.168.0.4
  RewriteCond %{REMOTE_ADDR} !=192.168.0.5
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

  • /maintenance.htmlの部分には、メンテナンス中であることを示すHTMLページへのパスを指定します
  • 192.168.0.4や192.168.0.5の部分には、システム管理者のIPアドレスを書きます。不要な場合は行ごと削除し、追加する場合はコピー&ペーストで増やしてください

参考資料


  1. *1HTTPステータスコード 503 は一時的な過負荷やサーバのメンテナンスためリクエストを扱えない状態を示します