У меня есть Apache2 с Mod_Proxy для доступа к бэкэнду (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 нужно имя хоста. как мне пройти?
Если вы установите ProxyPreserveHost On, эта опция будет передавать строку Host: из входящего запроса на проксируемый хост вместо имени хоста, указанного в строке ProxyPass.
Итак, если вы хотите, чтобы ServerName www.mywebsite.com перенаправлялся на прокси, используйте «ProxyPreserveHost On». Если вы хотите установить другое имя хоста, удалите эту директиву, и будет использоваться имя хоста в директиве ProxyPass.
Решено с помощью
В / etc / hosts я добавляю реальный IP-адрес серверной части с DNS, настроенным на PROXYIP X.X.X.X DNSTOREACH
<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.