Я хочу отправлять трафик, направленный на 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