cod*_*aig 9 mod-proxy apache-2.2
我在启用 SSL 的情况下运行 Apache Tomcat。我有 Apache HTTP Server 作为反向代理,所以如果用户点击http://myserver/tomcat/他们将被传递到http://myserver:8080。
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
Run Code Online (Sandbox Code Playgroud)
我也为 SSL 配置了 Apache HTTP 服务器,所以当用户点击https://myserver/tomcat/ 时,他们应该被传递到https://myserver:8443/。
使用当前的 ProxyPass 和 ProxyPassReverse 配置,它们将被重定向到非 ssl URL。如何设置代理传递,以便它根据传入请求重定向到不同的协议和端口?
也就是说,如果有人通过 HTTPS 进入,我如何将他们重定向到我的 tomcat @ https://myserver:8443?
更新:
@mike-insch
我试过:
NameVirtualHost *:443
<VirtualHost *:80>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
<VirtualHost *:443>
ProxyPass /tomcat/ https://myserver:8443/
ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
现在,当我访问:https://myserver/tomcat/我得到“找不到页面”。在错误日志中,我看到“文件不存在:/var/apache2/htdocs/tomcat”
这是正确的,但我希望请求被路由到在https://myserver:8443/ 上运行的 tomcat 。
猜猜我需要更多地查看虚拟主机,除非某些东西看起来明显错误。
小智 6
为了完整性:如果这是一个选项,最好在 Apache 终止 SSL,而不是让 Tomcat 也处理它。提供 Tomcat 只能从 Apache 访问,这更简单,也同样安全。
在此设置中,Apache 会将 HTTP 和 HTTPS 代理到http://myserver:8080/
:
NameVirtualHost *:443
<VirtualHost *:80>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
<VirtualHost *:443>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
您需要通过两个独立的<VirtualHost *:X>
指令来做到这一点。当您的HTTP
指令进入 inside<VirtualHost *:80>
时,您的HTTPS
指令进入内部<VirtualHost *:443>
。如果您的服务器配置了多个基于地址或基于名称的虚拟主机,则根据需要进行调整。有关完整详细信息,请参阅 Apache 2 文档。
归档时间: |
|
查看次数: |
26593 次 |
最近记录: |