Apache SSL 反向代理无法正确将请求转发到本地主机上的非 SSL 主机

Apache SSL 反向代理无法正确将请求转发到本地主机上的非 SSL 主机

我正在努力使我的 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 支持图案。

相关内容