Apache 2 Tomcat虚拟主机重定向

时间:2014-01-02 04:32:00

标签: apache tomcat virtualhost ajp

我的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

1 个答案:

答案 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>