2009-07-14 2 views
1

Я задал этот вопрос раньше, и я уже знаю, как использовать ISA Server 2006 для реализации этой функции, мой текущий вопрос заключается в том, как реализовать ту же функцию без использования ISA Server, но используя только чистый IIS. У кого-нибудь есть идеи?Проблема перенаправления веб-сайта IIS

Моя среда разработки/развертывания - IIS + Windows Server 2003/2008 + .Net + VSTS2008 + C#. У меня есть несколько веб-сайтов, каждая из которых имеет стабильную и бета-версию, например, у меня есть система заказа бета-версии и стабильная система заказа версий, такая же, как и система покупки. Я развернул 4 системы на 4 разных физических машинах (машинное имя labvm1, labvm2, labvm3 и labvm4).

Мое требование, я хочу, чтобы иметь общую схему URL для доступа к различным системам, как,

http://www.mycorp.com/order/beta 
http://www.mycorp.com/order/stable 
http://www.mycorp.com/purchase/beta 
http://www.mycorp.com/purchase/stable 

Но поскольку 4 системы размещены на 4-х различных физических машинах с другим именем машины/DNS, как я могу сопоставить один и тот же домен (http://www.mycorp.com) с различным суффиксом для разных физических онлайн-систем?

спасибо заранее, Джордж

ответ

1

Одним из способов является создание URL переписывания модуля с прокси-функции в корневой сервер (по одному www.mycorp.com). Я знаю, что это коммерческий продукт от Helicon Tech, ISAPI Rewrite. Проверьте документацию по номеру http://www.isapirewrite.com/docs/#RewriteProxy. Они в основном реализовали все функции из модема Apache Rewriting с использованием того же синтаксиса.

Вы бы установить такие правила: RewriteProxy^покупки/бета /(.*)$ http://192.168.0.12:8080/ $ 1

+0

Круто, Ариэль, и есть ли встроенные функции либо из IIS 6 или IIS 7, которые могли бы достичь своей цели без другого модуля ISAPI? :-) – George2

+0

Привет, Ариэль, я нахожу еще одну проблему при использовании функции переадресации встроенного IIS, целевой URL-адрес в браузере IE становится внутренним именем машины (например, labvm1), любые идеи по его изменению для отображения внешнего веб-сайта (www.mycorp .com) имя? Цель, почему я хочу иметь такое перенаправление, - мне нужно скрыть внутреннее имя машины. – George2

+1

Да, IIS поддерживает перенаправление, поэтому пользователь попадает в другой URL-адрес. Proxying прозрачен для пользователя, корневой сервер действует как прокси-сервер, поэтому вы можете перенаправить пользователя на недоступный ему сервер. –

1

URL IIS7 Переписывая модуль не поддерживает обратный прокси-функции, так что лучше использовать ISAPI-Rewrite 3 или Helicon Ape mod-proxy модуль. Конфигурации для ISAPI_Rewrite будут похожи на то, что при условии, Ariel:

RewriteBase/
RewriteProxy ^purchase/beta/(.*)$ http://192.168.0.12:8080/$1 

И конфигурация для Ape (Ape разработан специально для IIS7) является:

ProxyRequests Off 
<Proxy *> 
    Order deny,allow 
    Allow from all 
</Proxy> 
ProxyPass /purchase/beta/(.*) http://192.168.0.12:8080/$1 
+0

Спасибо TonyCool, я рассматриваю возможность использования встроенной функции, отличной от IIS, такой как модуль ISAPI_Rewrite, который вы предложили. В то же время я также пытаюсь использовать встроенную функцию IIS, и в настоящее время я нахожу еще одну проблему, целевой URL-адрес в браузере IE становится внутренним именем машины (например, labvm1), любые идеи по его изменению для отображения внешнего веб-сайта (www .mycorp.com) имя? Цель, почему я хочу иметь такое перенаправление, - мне нужно скрыть внутреннее имя машины. – George2

0

IIRF v2.0 поддерживает функцию обратного прокси , С помощью этой функции вы можете сопоставить набор серверов в одном пространстве имен URI, скрывая внутренние имена компьютеров сопоставленных ресурсов.

IIRF бесплатно, и работает с IIS6 и 7.

Смежные вопросы