Rexxer

Some tips for me and other

Apache + mod_proxy = magic

Понадобилось сделать доступ из внутренней сети к стэйджингу так, чтобы продакшн тоже был доступен.

Простое создание зоны в ДНС не подходит уже.

Мало того, оказалось, что на стэйджинге прописаны имена сервера как и на продакшне (т.е. только IP-адреса разные).

Сразу же возникла мысль использовать локальный Apache + mod_proxy.

После изучения мануалов по мод-прокси и ресолвинга в инете различных гадостей, получилось вот что:

Были сконфигурированы 2 виртуальных хоста (думаю можно было еще покрутить mod_rewrite, но так было быстрее):

<VirtualHost 192.168.22.22:80>
DocumentRoot “/usr/local/www/apache22/data/test”
ServerName another-test.com
ServerAlias www.another-test.com
ErrorLog “/var/log/test_log”
RewriteEngine On
#RequestHeader set Host test.com
#RequestHeader set Server test.com
#RequestHeader set x-forwarded-server “http://test.com”
#RequestHeader set x-orig-accept-name “http://test.com”
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://177.77.77.77/
ProxyPassReverse / http://177.77.77.77/
</VirtualHost>
<VirtualHost 192.168.22.22:80>
DocumentRoot “/usr/local/www/apache22/data/test”
ServerName second.another-test.com
ServerAlias second.another-test.com
ErrorLog “/var/log/test_log”
RewriteEngine On
#RequestHeader set Host second.test.com
#RequestHeader set Server second.test.com
#RequestHeader set x-forwarded-server “http://second.test.com”
#RequestHeader set x-orig-accept-name “http://second.test.com”
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://177.77.77.77/
ProxyPassReverse / http://177.77.77.77/
</VirtualHost>

Здесь хочу обратить внимание – слэш в конце следующих директив(нужны обе) обязателен, иначе будет выдавать ошибка вроде Cannot resolve DNS name for: … :

ProxyPass / http://177.77.77.77/
ProxyPassReverse / http://177.77.77.77/

Также test.com – продакшн, another-test.com – стэйджинг.

В Bind была создана зона соответсвующая – в ней просто тип – мастер и файл базы.

В файле базы не нужно использовать TTL для имен А и т.п., иначе будет ругаться (в моем случае апач и байнд на одной машине находились).

Для виндового сервера пришлось прописать форвардер(сервер с биндом) на данный домен.

Leave a Reply