Назад | Перейти на главную страницу

Могу ли я настроить IIS 7+ для выполнения динамического обратного прокси на основе имени входящего хоста?

Я пытаюсь настроить IIS на запросы прокси на основе имени входящего хоста. Например, если мой прокси-сервер - это сервер IIS, расположенный на www.proxy.com, запрос на www.google.com.www.proxy.com будет проксироваться на www.google.com.

Я попытался настроить обратный прокси с правилом перезаписи URL, чтобы перезаписать *localhost* к {R: 1} {R: 2}, но мне не повезло. Из того, что я прочитал, это может быть возможно только в том случае, если я точно укажу, с какими серверами я хочу взаимодействовать заранее, но в моем случае это невозможно (серверы находятся на EC2 и все время динамически создаются и уничтожаются ).

На самом деле это не так сложно настроить. Разве это разумный поступок, разрешив практически любой домен www..com.www.proxy.com для прокси на www.Другое дело .com. У вас должен быть какой-то механизм для ограничения доменов, для которых вы хотите использовать прокси.

Но в любом случае технически вам необходимо настроить обратный прокси со следующим правилом перезаписи URL (с установленным модулем ARR):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="ReverseProxy" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{CACHE_URL}" pattern="^(https?)://(.*?)\.www\.proxy\.com" />
                    </conditions>
                    <action type="Rewrite" url="{C:1}://{C:2}/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Но вам действительно стоит добавить дополнительные условия, чтобы ограничить домены, для которых вы разрешаете проксирование.