如何解决在ubuntu apache2上添加自定义错误503页面html使用它与mod_jk和虚拟主机重定向到tomcat

我尝试了所有我在apache文档和stackoverflow和博客上发现的其他sugestions.
当我将folloowing行添加到任何配置文件时,例如/etc/apache2/apache2.conf或/etc/apache2/conf.d/localized-error-pages或/etc/apache2/httpd.conf或/ etc / apache2 / sites – 启用/ 000默认:

ErrorDocument 503“这是一个错误消息”或甚至是一条HTML消息
ErrorDocument 503“< h1>这是一条错误消息< / h1>
或外部网址重定向ErrorDocument 503 http://www.google.com它的工作原理.

但是当我尝试像ErrorDocument 503 /ERROR_503.html这样的内部重定向时
或ErrorDocument 503 /error/ERROR_503.html我收到最后一行的默认消息:

此外,503服务暂时不可用
尝试使用ErrorDocument处理请求时遇到错误.

我试图将html错误页面放在DocumentRoot var / www,var / www / error.
尝试取消注释所有文件/etc/apache2/conf.d/localized-error-pages,它们将所有错误设置为国际化的自定义页面,位于/usr/share / apache2 / error.
并且由于此文件中的消息与默认值相同,因此该行

此外,503服务暂时不可用
尝试使用ErrorDocument处理请求时遇到错误.
不再显示了.但是,如果我改变线

`ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var`

在本地化的错误页面文件中放置在同一页面的新html,错误又回来了
并且页面未显示.如果我编辑文件HTTP_SERVICE_UNAVAILABLE.html.var,那么浏览器消息也没有任何变化.

更多信息:我正在使用apache2将端口80上的所有请求通过工作端口重定向到端口8089的tomcat.我的配置文件是https://dl.dropboxusercontent.com/u/1105054/apache.zip

最佳答案
这花了太长时间(部分由于拼写),但我想我会发布我的整个虚拟主机文件,因为它可能有用.

您需要确保已指定DocumentRoot,并且您要执行ProxyPass /file.html!在您的主要ProxyPass /之前.

<VirtualHost *:443>
    DocumentRoot /var/www/html
    #ProxyPreserveHost On

    <IfModule env_module>
         # Fake SSL if Loadbalancer does SSL-Offload 
         SetEnvIf Front-End-Https "^on$" HTTPS=on
    </IfModule>

    SSLEngine on
    SSLCertificateFile file
    SSLCertificateKeyFile file
    SSLCertificateChainFile file

    ProxyPass /maintenance-message.html !
    ProxyPass /maintance-message_files !
    ProxyPass / "ajp://localhost:8009/"
    ProxyPassReverse / "ajp://localhost:8009/"
    ServerName server.something.com:443
    ErrorDocument 503 /maintenance-message.html
</VirtualHost>

转载注明原文:如何解决在ubuntu apache2上添加自定义错误503页面html使用它与mod_jk和虚拟主机重定向到tomcat - 代码日志