我正在努力使我的 Apache 配置正确。我想终止 Apache 上的 SSL 连接并代理到本地主机上的 http 服务器。
设置是浏览器 --> Apache(HTTPS) --> localhost:8001 --> localhost:8002
已设置反向代理以使用 URL 中的上下文,例如http://url/test1
将重定向到 localhost:8001/test1
我总是被重定向回 http 端口。将协议修复为 https 可以加载页面,但如果被重定向,我最终会回到 http 而不是 https。
<VirtualHost *:443>
SSLCACertificateFile /etc/XXX
SSLCertificateFile /etc/XXX
SSLCertificateKeyFile /etc/XXX
SSLProxyEngine On
ServerName url
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /test1 http://localhost:8001/test1
ProxyPassReverse /test1 http://localhost:8001/test1
ProxyPass /test2 http://localhost:8002/test2
ProxyPassReverse /test2 http://localhost:8002/test2
</VirtualHost>
但是我的配置适用于与 Apache 的非 SSL 连接。
答案1
代理系统不知道 SSL 代理,因此需要将 http URL 重写为 https。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Jira 和 Confluence 支持这图案。