0

我有 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/redirect、rewrite、VirtualHost 和符号链接。其中一些选项在 Apache 和 Tomcat 配置下都是可能的。我很困惑。确保/guacamole/guacamole/index.xhtml(或*)请求到达的最佳方法是/guacamole/index.xhtml什么?

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

4

1 回答 1

0

对于任何偶然发现这个问题的人,我都能从 Suresh Atta对这个问题的回答中解决。

基本上我所要做的就是在 /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>

我敢肯定有一种更清洁的方法可以做到这一点,但现在对此的要求很低,这使粗糙的边缘变得平滑。

于 2016-09-11T22:48:55.200 回答