Я хочу отправлять трафик, направленный на remote.mydomain.com, на сервер Windows с внутренним IP-адресом. Внешний трафик попадает на наш общедоступный IP-адрес и направляется на наш сервер ubuntu 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/.....
Мне также нужно настроить ssl в окне Windows.
Любой вклад будет оценен.
Решение:
добавьте ProxyPreserveHost On в файл vhost .conf
и
ProxyPreserveHost On
ProxyPass /remote http://172.18.1.8:80/
ProxyPassReverse /remote http://172.18.1.8:80/
в vhost .conf самого домена, и теперь он работает.
Вы можете добавить опцию 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