在 Apache 中使用 mod_proxy 添加主机

在 Apache 中使用 mod_proxy 添加主机

我有一个带有 Mod_Proxy 的 Apache2 来访问后端(带有一些网站的 IIS,所有网站都在单个 IP 上配置了主机名)。

我想添加主机头以使用代理的 IP(而不是主机名)来访问域。

<VirtualHost MYPROXYIP>
        ProxyPreserveHost On
        ProxyRequests Off
        ProxyVia On
        ProxyTimeout 300
        <Proxy *>
        Allow from all
        </Proxy>
        ServerName www.mywebsite.com 

        ProxyPassReverse / http://MYBACKENDIP/
        ProxyPass / http://MYBACKENDIP/
</VirtualHost>

现在,MYBACKENDIP 需要一个主机名。我该如何传递它?

答案1

如果您设置 ProxyPreserveHost On,此选项将把传入请求中的 Host: 行传递到代理主机,而不是 ProxyPass 行中指定的主机名。

因此,如果您希望将 ServerName www.mywebsite.com 转发到代理,请使用“ProxyPreserveHost On”。如果您要设置其他主机名,请删除此指令,然后使用 ProxyPass 指令中的主机名。

答案2

使用解决

在 /etc/hosts 中,我添加了真实的后端 IP,并在 PROXYIP XXXX DNSTOREACH 上配置了 DNS

<VirtualHost PROXYIP>
        ProxyRequests Off
        ProxyVia On
        ProxyTimeout 300
        <Proxy *>
        Allow from all
        </Proxy>
        ServerName DNSTOREACH

        ProxyPassReverse / http://DNSTOREACH/
        ProxyPass / http://DNSTOREACH/
</VirtualHost>

因此,PROXYIP 具有 A 记录,并且在代理服务器上在 /etc/hosts 中使用后端 IP 进行配置。

相关内容