簡體   English   中英

關閉時將tomcat重定向到維護頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM