![将 https 和 http 请求从 apache 重定向到我在 tomcat 中的 Web 应用程序](https://linux22.com/image/730461/%E5%B0%86%20https%20%E5%92%8C%20http%20%E8%AF%B7%E6%B1%82%E4%BB%8E%20apache%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E6%88%91%E5%9C%A8%20tomcat%20%E4%B8%AD%E7%9A%84%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我有一个在 tomcat 中运行的 spring web 应用程序,我可以使用https://示例:8080/myApp。我已安装 Apache2 以将端口 443 请求重定向到 tomcat。现在我可以访问我的应用程序而无需端口号。我已使用 LetsEncrypt 安装了 SSL 证书,并且所有 HTTP 请求都转发到 https。当我在浏览器中输入我的域名时,它会将我带到 tomcat 主页,而不是我的 Web 应用程序。这是我的 443 虚拟主机配置
<IfModule mod_ssl.c>
<VirtualHost *:443>
JKMount /* ajp13_worker
ProxyPreserveHost On
ProxyRequests Off
ServerAdamin webmaster@myDomain
ServerName example.com
ServerAlias www.example.com
ProxyPass https://example.com http://localhost:8080/myApp
ProxyPassReverse https://example.com http://localhost:8080/myApp
<!--ssl details-->
</VirtualHost>
</IfModule>
为什么它没有重定向到myApp
。任何帮助都将不胜感激。如果您需要更多详细信息,请询问。
答案1
当使用两个参数时ProxyPass
它不将完整的 URL 作为第一个参数,只将路径作为第一个参数。
ProxyPass / http://localhost:8080/myApp/
ProxyPassReverse / http://localhost:8080/myApp/
尾随的斜杠也很重要。