我正在将 apache 配置为将 SSL 请求代理到本地后端服务器。以下是虚拟主机的相关部分:
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
RewriteEngine On
<Proxy balancer://unicornservers>
BalancerMember http://127.0.0.1:8080
</Proxy>
# Redirect all non-static requests to unicorn
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://unicornservers%{REQUEST_URI} [P,QSA,L]
ProxyPassReverse / balancer://unicornservers/
ProxyPreserveHost on
...
</VirtualHost>
当我使用 curl 访问服务器 ( ) 时,后端服务器按预期curl -vk https://example.com
执行重定向到 。/login
问题是,apache 没有Location
正确重写标题。它返回一个位置,http://example.com/login
而不是https://example.com/login
。
我的配置中是否有需要告诉 apachehttps
用于ProxyPassReverse
重写的地方?