我们使用反向代理允许防火墙外的用户访问内部服务器上的服务。但是,虽然我们使用ProxyPreserveHost
指令,但网址为http://project.domain.com/index.html
的请求会产生http://internal.server/index.html
而不是预期的http://project.domain.com/index.html
。
这是我们的虚拟主机定义:
<VirtualHost *:443>
ServerName "https://project.domain.com"
SSLEngine on
SSLCertificateFile /etc/ssl/our.cer
SSLCertificateKeyFile /etc/ssl/private/our.key
ProxyRequests Off
ProxyVia Off
<Proxy *>
Require all granted
</Proxy>
ProxyPreserveHost On
ProxyPass / http://internal.server:80/
ProxyPassReverse / http://internal.server:80/
</VirtualHost>
答案 0 :(得分:0)
问题是ProxyPass
的目标本身已重定向到https://internal.server
。
当我们将ProxyPass
和ProxyPassReverse
目标更改为https://internal.server
(绕过重定向)时,ProxyPreserveHost
指令有效。