我想将指向 remote.mydomain.com 的流量发送到具有内部 IP 地址的 Windows 服务器。来自外部的流量到达我们的公共 IP 地址,并被定向到我们的 ubuntu server 14.04 机箱,我们的网站也托管在那里。
目前我们正在使用 vhost proxypass 将流量重定向到 Windows 服务器:
<VirtualHost *:80>
ServerName remote.mydomain.com
ProxyPass / http://172.18.1.8:80/
ProxyPassReverse / http://172.18.1.8:80/
</VirtualHost>
但问题是,浏览器显示的内部IP地址如下:
http://172.18.1.8/Remote/.....
我还需要在 Windows 框中设置 ssl。
任何意见都将受到赞赏。
解决方案:
在 vhost.conf 中添加 'ProxyPreserveHost On'
和
ProxyPreserveHost On
ProxyPass /remote http://172.18.1.8:80/
ProxyPassReverse /remote http://172.18.1.8:80/
在域本身的 vhost .conf 中,它现在可以工作。
答案1
ProxyPreserveHost On
您可以在虚拟主机配置文件中添加该选项vhos.conf
,这应该可以解决您的问题。您的配置应该如下所示。
ProxyPreserveHost On
ProxyPass /remote http://172.18.1.8:80/
ProxyPassReverse /remote http://172.18.1.8:80/
启用后,此选项将把传入请求的 Host: 行传递到代理主机,而不是 ProxyPass module="mod_proxy" 行中指定的主机名。
正如 Apache 文档中所述:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html