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 для имен А и т.п., иначе будет ругаться (в моем случае апач и байнд на одной машине находились).
Для виндового сервера пришлось прописать форвардер(сервер с биндом) на данный домен.
Exchange 2010 + mobile devices limits Backup freebsd