5/21/2010

Maintenance page for Apache

網站上線後在初期會有很多程式修正,因此網站更新過程必須停止程式運作( java web app),在維護過程中讓使用重導至維護面是很重要。在apache環境提供滿多解決方案,這效果讓維護過程使用者知道網站尚未死掉。

解決方法(1)使用mod_rewrite模組,只要將maintenance.html放入根路徑,表示要啟動維護動作,同時Apache會將所有請求轉到maintenance.html。

[bash] RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f RewriteCond %{REQUEST_FILENAME} !/maintenance.html RewriteRule ^.*$ /maintenance.html [L] [/bash]

使用解決方案1 似乎無法使用在apache + tomcat環境中,因此使用了apache錯誤判斷的機制,來重新重導至維護頁

如果出現503錯誤表示tomcat已經停下來,apache將會重新重導至 http://maintenance.abc.com/

Temporarily Unavailable — the service or file that is being requested is not currently available.
[bash] ErrorDocument 503 http://maintenance.abc.com/ [/bash]

但是使用者只是重導於http://maintenance.abc.com/網站中,並不知道是否已經維護完成。因此,在Index.html中多了定時refresh至http://www.abc.com/, HTML如下

[html] maintenance !

維護中 ...

[/html]

解決方案2雖然也不是高明的方法,不過也算是解決我的問題。

No comments:

Post a Comment