Проксирование сайта через Апаче
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. Подключаем этот хост
4. Перезагружаем
sudo /etc/init.d/apache2 restart
Готово.
Обратите внимание на опцию
ProxyPreserveHost, при проксировании сервер подменяет параметр
host в заголовке запросов на хост из опции
ProxyPass, при этом копирует прежний
host в параметр
X-Forwarded-Server.
При этом на некоторых движках (сайтах) может неправильно работать
redirect подставляя локальный адрес внутреннего сервера, когда нужен внешний. Для решения этой проблемы нужно включить опцию
ProxyPreserveHost, тогда сервер будет оставлять реальный
host который пришел на текущий сервер.