Поиск по сайту

    Мои услуги на Kwork

Проксирование сайта через apache

 

Перенаправление запросов в интернет из локальной сети, используя Apache mod_proxy

Задача:
Есть внешний сайт. Нужно обеспечить доступ к нему клиентов из локальной сети, у которых нет возможности выхода в глобальную сеть Интернет. Для этого нам нужен локальный сервер с выходом во внешнюю сеть, и  настроенным apache.

1. Подключаем proxy модули

$ 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!

Добавить комментарий

Sidebar



Яндекс.Метрика Рейтинг@Mail.ru