Apache 2 Tomcat 虚拟主机重定向

标签 apache tomcat virtualhost ajp

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

最佳答案

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

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>

关于Apache 2 Tomcat 虚拟主机重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20876373/

相关文章:

apache - ProxyPass|ProxyPassMatch 在位置中定义时不能有路径

java - Tomcat 能否将 OutOfMemory 隔离到单个请求而不是“停止内存不足而不是装死”?

apache - 添加、删除或重新加载特定虚拟主机,无需重新启动 Apache(并中断其他 VirtualHost 的请求)

Apache LDAP 身份验证仅适用于某些虚拟主机

php - PHP 文件名(或其完整路径中的目录)可以包含 UTF-8 字符吗?

mysql - XAMPP 与 Mac OS Catalina 的问题

Tomcat 5.5.27 无法解析 JSP 导入

css - Tomcat 8 Fav 图标无法更换

python - 如何为 Tornado HTTP 服务器创建虚拟主机

php - Docker php :5. 6-Apache 开发环境缺少卷装载权限