![](/img/trans.png)
[英]Redirect to maintenance.html from apache when tomcat down not working
[英]Redirect tomcat to maintenance page when down
我在ubuntu9.10和8.10服務器上使用tomcat6和mod_jk設置(都在端口80上運行)。 我在/ usr / share / tomcat / webapps下部署war文件。 在部署期間,當我重新啟動tomcat時,在瀏覽器上訪問tomcat應用程序時,我將獲得以下頁面:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/2.2.11 (Ubuntu) mod_jk/1.2.15 Server at 192.168.2.54 Port 80
在tomcat服務器關閉時,如何將此頁面重定向到其他自創建的維護頁面?
如果您使用的是mod_jk和tomcat連接器,則這是預期的行為。 如果你使用類似的東西
ErrorDocument 503 "foo"
你會在頁面上看到'foo'或者
ErrorDocument 503 "http://www.somedomain.com"
這將成功引導您到somedomain.com。 但如果你使用類似的東西
ErrorDocument 503 /maintenance.html
Apache將無法找到[DocumentRoot] /maintenance.html,因為它在tomcat連接器的上下文中查找。 您需要卸載連接器並告訴Apache從其他位置提供靜態內容。
這是一個很好的指南,可以幫助您開始使用mod_jk。 使用Apache和Tomcat連接器的自定義錯誤頁面
編輯:這是我用來使我們的自定義503頁面正確呈現的解決方案。
首先,我們所有的自定義錯誤頁面都以錯誤代碼為前綴,因為我們的Web應用程序可能不會包含帶有這些狀態代碼作為文件名根目錄的文件。 因此,對於使用您的示例,我會在名為“custom_errors”的目錄中使用以下三個文件:
/503_maintenance.html
/503_maintenance.css
/503_corp_logo.png
這樣可以輕松地從jk mount中排除與自定義錯誤頁面相關的任何文件。 在我們的vhost文件中,然后我們設置錯誤文檔位置和別名
#Alias the location of your custom error page files
Alias /error/ /var/apache2/2.2/htdocs/custom_errors
ErrorDocument 503 /error/503_maintenance.html
#mount the core tomcat application
JkMount /* myWorker
#set the 503 code if myWorker is unavailable
#and exclude the 503 pages from the tomcat/jboss application
JkMount /* myWorker;use_server_errors=503
JkUnMount /503* myWorker
這基本上告訴Apache和mod_jk不要在tomcat連接器的上下文下安裝帶有503前綴的任何文件,而是在本地查找這些文件。 如果您不想使用相對於DocumentRoot的位置,您可以像我一樣使用和Alias。
您可以在Apache中設置自定義錯誤頁面以獲取錯誤代碼503。
http://httpd.apache.org/docs/2.2/mod/core.html#errordocument
ErrorDocument 503 /maintance.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.