Home

Tags

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

2010-01-28 apache proxy

Инструкция для ubuntu
1. Подключаем proxy модули

$ sudo a2enmod proxy proxy_http


2. Настраиваем хост etc/apache2/sites-available/mysite
<VirtualHost *:80>
    ServerName mysite.ru
    ProxyPass / http://192.168.0.15:8890/
    ProxyPreserveHost On

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ErrorLog /var/log/apache2/mysite_error_log
    CustomLog /var/log/apache2/mysite_log common
</VirtualHost>

3. Подключаем этот хост
$ sudo a2ensite mysite

4. Перезагружаем
sudo /etc/init.d/apache2 restart

Готово.

Обратите внимание на опцию ProxyPreserveHost, при проксировании сервер подменяет параметр host в заголовке запросов на хост из опции ProxyPass, при этом копирует прежний host в параметр X-Forwarded-Server.
При этом на некоторых движках (сайтах) может неправильно работать redirect подставляя локальный адрес внутреннего сервера, когда нужен внешний. Для решения этой проблемы нужно включить опцию ProxyPreserveHost, тогда сервер будет оставлять реальный host который пришел на текущий сервер.