我的tomcat中有一个Java Web应用程序,我将Apache2 HTTP作为我的反向代理。 实际上我已经做了一个(相当)良好的重定向,但我想做得更好。
我的虚拟主机设置,用于重定向到我的tomcat Web应用程序,如下所示
<VirtualHost *:443>
ServerAdmin myuseracc@gmail.com
ServerName mywebapp.mydomain.com
ProxyRequests off
ProxyPreserveHost on
ErrorLog /usr/log/tomcat/tomcat.error.log
CustomLog /usr/log/tomcat/tomcat.log combined
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://localhost:8009/MyWebApp
ProxyPassReverse / ajp://localhost:8009/MyWebApp
Redirect / /MyWebApp
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
通过上述设置,我可以完美地输入: https://mywebapp.mydomain.com 来访问我的网络应用。
唯一的问题是:当我的应用程序在浏览器上呈现时,我可以看到路径变得像: 的 https://mywebapp.mydomain.com/MyWebApp/view/home.action
无论如何,我可以让它成为: 的 https://mywebapp.mydomain.com/view/home.action
没有在tomcat中公开我的app文件夹, MyWebApp ?
答案 0 :(得分:0)
查看以下内容是否有帮助。我曾经用过一段时间了:
ProxyPass /MyWebApp/ ajp://localhost:8009/
ProxyPassReverse /MyWebApp/ ajp://localhost:8009/
<Location /MyWebApp/>
ProxyPassReverse /
</Location>
看起来上面没有用。我认为你拥有的Redirect指令会处理它。你能尝试以下吗?
RewriteEngine on
RewriteRule ^(/.*) ajp://localhost:8009/MyWebApp/$1 [P]
ProxyPass /MyWebApp/ /
ProxyPassReverse /MyWebApp/ /
<Location /MyWebApp/>
ProxyPassReverse /
</Location>