使用反向代理时返回原始URL

时间:2018-03-06 10:25:09

标签: reverse-proxy host apache2.4

我们使用反向代理允许防火墙外的用户访问内部服务器上的服务。但是,虽然我们使用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>

1 个答案:

答案 0 :(得分:0)

问题是ProxyPass的目标本身已重定向到https://internal.server

当我们将ProxyPassProxyPassReverse目标更改为https://internal.server(绕过重定向)时,ProxyPreserveHost指令有效。