使用 mod_proxy 从 Apache 重定向到 Tomcat

使用 mod_proxy 从 Apache 重定向到 Tomcat

我有一个名为我的域名指向我的 Ubuntu 16.04.3 服务器11.11.11.11,所以当我介绍我的域名在浏览器中,我进入了安装在该服务器上的 Apache 的默认页面。

我也在同一台服务器上安装了 Tomcat 7,并且联合部队APP 在上面运行,所以当我介绍http://11.11.11.11:8080/我的应用程序名称/在我的浏览器中,我的 APP 出现在浏览器中。

我想从 Apache 重定向到我的 Tomcat,所以每次有人写我的域名在其浏览器上出现了我的APP。

为了做到这一点,我已经安装并配置了mod_proxy根据我读过的许多教程(例如这个或者这个其他)。我在Apache默认站点的.CONF文件中的配置是:

ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/myappname/
ProxyPassReverse / http://127.0.0.1:8080/myappname/

通过此配置,每次我写入我的域名在浏览器中,我的联合部队显示了 APP,但以纯文本显示,没有图片/CSS,并且任何 URL 或动态部分都无法工作。

如果我检查 Mozilla 工具中的“性能”部分,我会看到很多类似这样的错误:

http://www.mydomaincom/myappname/javax.faces.resource/theme.css.xhtml[HTTP/1.1 500 Internal server error]
http://www.mydomaincom/myappname/images/EN.png [HTTP/1.1 404 Not Found 249ms]

另一方面,我发现使用此配置:

ProxyPass /myappname 127.0.0.1:8080/myappname 
ProxyPassReverse /myappname 127.0.0.1:8080/myappname 

每次我在浏览器中书写时mydomain.com/myappname页面显示正常,没有错误。显然我不想使用这样的配置,我只想写我的域名

我尝试过许多其他 mod_proxy 配置以及其他参数(ProxyRequests、DefaultType、ProxyPassReverseCookiePath、ProxyPassReverseCookieDomain……),但似乎都不起作用……

问题是什么?

提前感谢您的耐心和帮助!

顺便说一句:我知道 Tomcat 不应该公开暴露,我稍后会处理这个问题...

答案1

添加重写规则

RewriteRule ^/$ /myappname

结合ProxyPass /myappname

相关内容