Переадресация заголовков хоста
У меня есть вопрос о пересылке hostheader внутри сети.
Моя установка такова: - На передней панели у меня есть маршрутизатор Linksys - За маршрутизатором у меня есть 3-4 тестовых веб-сервера с различными настройками - Я нахожусь в среде Windows
Что я хочу сделать, так это иметь субдомен /CNAME, следующий через маршрутизатор на разные серверы. Например. У меня есть "website1.domain.com" и "website2.domain.com", и я хочу, чтобы website1 пересылал на свой testwebserver 1, а website2 - на мой testwebserver 2.
В моей текущей настройке я могу сделать это в маршрутизаторе, но я работаю только с портами, поэтому в результате весь трафик на порту 80 должен идти на один сервер. Это проблема, потому что тогда я могу выставлять только один веб-сервер за раз.
Я хотел бы, чтобы я мог установить какое-либо программное обеспечение на Windows-сервере, чтобы весь трафик проходил через него, так что легко установить новые форварды.
У кого-нибудь есть вклад?
С уважением, Томас
3 ответа
Существует стороннее программное обеспечение для Windows (IIS), которое, помимо прочего, выполняет эту работу довольно хорошо: ISAPI Rewrite.
ISAPI Rewrite - это мощный механизм обработки URL-адресов, основанный на регулярных выражениях. Он работает в основном как Apache mod_Rewrite, но разработан специально для Microsoft Internet Information Server (IIS). ISAPI Rewrite - это фильтр ISAPI, написанный на чистом C/C++, поэтому он очень быстрый. ISAPI_Rewrite дает вам свободу выйти за рамки стандартных схем URL и разработать собственную схему.
Я использовал его для разных целей на наших серверах, и он работал очень хорошо. Поиск "Прокси". Вот документация для правила RewriteProxy.
Редактировать:
Вы могли бы использовать эти правила
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteProxy ^(.*) http://local-server-ip/appdir-for-domain/$1 [H,A,L]
RewriteCond %{HTTP_HOST} ^myotherdomain.com$
RewriteProxy ^(.*) http://local-server-ip/appdir-for-otherdomain/$1 [H,A,L]
или что-то вроде этого:
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteProxy ^(.*) http://mydomain.com.intranet$1 [H,A,L]
RewriteCond %{HTTP_HOST} ^myotherdomain.com$
RewriteProxy ^(.*) http://myotherdomain.com.intranet$1 [H,A,L]
Если вы хотите придерживаться MS, то ISA Server может сделать это. Это дорогое решение, хотя иногда вы можете найти ISA на Ebay по доступным ценам. Избегайте ISA 2000, который является брюками, и используйте либо ISA 2004, либо ISA 2006.
В качестве альтернативы любой обратный прокси может сделать это. Дешевым и надежным решением будет SQUID, хотя конфигурация может показаться нам излишне извилистой для нас, парней из Windows. Я использовал SQUID, и он работает очень хорошо.
JR
Добавьте туда apache, используйте mod_proxy, чтобы пересылать туда, куда вам угодно.