Проксирование сайта через apache
Перенаправление запросов в интернет из локальной сети, используя Apache mod_proxy
Задача:
Есть внешний сайт. Нужно обеспечить доступ к нему клиентов из локальной сети, у которых нет возможности выхода в глобальную сеть Интернет. Для этого нам нужен локальный сервер с выходом во внешнюю сеть, и настроенным apache.
$ sudo a2enmod proxy proxy_http
2. Настраиваем виртуальный хост /etc/apache2/sites-available/disnetern.ru.conf
ServerName disnetern.lan ServerAlias www.disnetern.lan ProxyPass / http://disneter.ru/ # ProxyPreserveHost On ProxyPassReverse / http://disnetern.ru/ <Proxy *> Order deny,allow Allow from all </Proxy> ErrorLog /var/log/apache2/disnetern_error_log CustomLog /var/log/apache2/disnetern_log common
ProxyPreserveHost, при проксировании сервер подменяет параметр host в заголовке запросов на хост из опции ProxyPass, при этом копирует прежний host в параметр
X-Forwarded-Server. При этом на некоторых сайтах может неправильно работать redirect подставляя локальный адрес внутреннего сервера, когда нужен внешний.
Для решения этой проблемы нужно включить опцию
ProxyPreserveHost, тогда сервер будет оставлять реальный host который пришел на текущий сервер.
3. Подключаем этот хост
$ sudo a2ensite disnetern.lan.conf
4. Перезагружаем apache
sudo /etc/init.d/apache2 restart
или
service apache2 reload
Готово. Теперь, при запросе из локальной сети сайта disnetern.lan, будет открываться внешний сайт disnetern.ru





Comments
So empty here ... leave a comment!