使用Apache作为前端重定向Tomcat 404 URL的最佳方法是什么?

时间:2016-09-07 02:28:28

标签: apache tomcat guacamole

我有Apache 2.4转发*:80个流量到我唯一的Tomcat 7.0 webapp(Guacamole),如下所示:

ProxyPreserveHost On
ProxyRequests off
ProxyPass / http://localhost:8080/guacamole/
ProxyPassReverse / http:/localhost:8080/guacamole/
ProxyPassReverseCookiePath / http://localhost:8080/guacamole

这有效,除非我退出webapp,我得到Tomcat报告的以下404:

HTTP Status 404 - /guacamole/guacamole/index.xhtml

根据我的阅读,我有几个选项,包括使用ProxyPass /重定向,重写,VirtualHost和符号链接。 Apache和Tomcat配置下都可以使用其中一些选项。我糊涂了。确保/guacamole/guacamole/index.xhtml(或*)请求到达/guacamole/index.xhtml的最佳方法是什么?

(如果真正的根本原因在Guacamole webapp代码中,我知道没有Java。)

1 个答案:

答案 0 :(得分:0)

对于遇到这个问题的人,我能够从Suresh Atta的回答中解决C# per application volume control

基本上我所要做的就是在/var/lib/tomcat/webapps/guacamole/logout.html中创建一个自定义404 html,其中包含礼貌信息和再次登录的邀请:

<html>
<h2 align=center>Thank you. You're now logged out.</h2>
<h2 align=center>If this was a mistake or you'd like to begin a new session, 
please <a href="http://guacamoleapp.address.com">click here.</a></h2>
</html>

然后我将此指令添加到web.xml:

<error-page>
  <error-code>404</error-code>
  <location>/logout.html</location>
</error-page>

我确信有一个更清洁的方法可以做到这一点,但现在这个要求很低,这使得粗糙的边缘变得平滑。