Задача: При открытии страницы http://mypage.ru веб сервер обращался к другому веб серверу, получал от него контенти и выдавал его за свой. Другими словами обратный прокси (Reverse proxy). К примеру как сделано тут http://alexwhite.ru/proxy/
Решение: Для этого понадобится установить IIS. Это можно сделать «прокликая» или из коммандной строки.
servermanagercmd -install Web-Server -a
Далее, нужно установить 2 компанента для IIS, URL Rewrite и Application Request Routing (ARR). Первый можно скачать и установить, а второй доступен только через Web Platfom Installer (WPI). Если нужно писать сценарий автоматической установки, то это затруднит работу. Выход из этого нашёлся быстро, это WebPICMD. WPI, но с командной строкой. Устанавливая ARR, WebPICMD подтянес зависимость URL Rewrite. Тем самым облегчив малость работу. Я устанавливаю только ARR
start /wait C:\WPI_CMD\WebPICMD\WebPICMD.exe /Install /Products:ARR /log:c:\windows\temp\WPI_CMD_LOG.txt /AcceptEula
После установки можно просмотреть лог.
Далее настраиваем перенаправление, это можно сделать гуём, копированием подготовленного web.config и возможно appcmd. Вот пример Web.config:
<?xml version=»1.0″ encoding=»UTF-8″?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=»ReverseProxyInboundRule1″ stopProcessing=»true»>
<match url=»(.*)» />
<action type=»Rewrite» url=»http://alexwhite.ru/?p=729{R:1}» />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Помещаем этот конфиг в корень сайта на котором хотим сделать проксирование, ребутаем IIS.
Далее нужно включить Proxy. Это можно сделать в «гуе» или
appcmd set config -section:system.webServer/proxy /enabled:»True» /commit:apphost
Результат: В результате при от крытии этого сайта будет происходить проксирование, таким образом можно использовать в сценарии для организации доступа к определённому сайту, определённому кругу людей в офисе, кому запрещён доступ в интернет.
Полезные ссылки:
http://www.iis.net/download/urlrewrite