【问题标题】:Apache 2 Tomcat Virtual Host redirectingApache 2 Tomcat 虚拟主机重定向
【发布时间】:2014-01-19 12:18:30
【问题描述】:

我的 tomcat 中有一个 Java Web 应用程序,我将 Apache2 HTTP 作为我的反向代理。 实际上我已经做了一个(相当)好的重定向,但我想让它变得更好。

用于重定向到我的 tomcat 网络应用程序的虚拟主机设置如下所示

<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中公开我的应用程序文件夹,即MyWebApp

【问题讨论】:

    标签: apache tomcat virtualhost ajp


    【解决方案1】:

    看看以下是否有帮助。我以前用过它:

    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>
    

    【讨论】:

    • Hmm Kevin,我需要将 MyWebApp 移动到 ROOT 文件夹吗?
    猜你喜欢
    • 2011-06-11
    • 2022-06-18
    • 2012-08-18
    • 2016-04-14
    • 2016-07-16
    • 2015-02-22
    • 2018-07-08
    • 2013-04-21
    • 2014-04-11
    相关资源
    最近更新 更多