Posso configurar o IIS 7+ para fazer um proxy reverso dinâmico com base no nome do host recebido?

2

Estou tentando configurar o IIS para solicitações de proxy com base no nome do host de entrada. Por exemplo, se o meu servidor proxy for um servidor IIS localizado em www.proxy.com, uma solicitação para www.google.com.www.proxy.com será intermediada por proxy para www.google.com

Eu tentei configurar um proxy reverso com uma regra de reescrita de URL para reescrever *localhost* para {R: 1} {R: 2}, mas não tive nenhuma sorte. Pelo que eu li, só pode ser possível se eu especificar exatamente com quais servidores eu quero interagir com antecedência, mas no meu caso, isso não é possível (servidores estão no EC2 e sendo dinamicamente criados e mortos o tempo todo) ).

    
por Justin Fyles 15.03.2012 / 20:27

1 resposta

0

Realmente não é tão difícil de configurar. Seja uma coisa sensata a se fazer, permitindo virtualmente qualquer domínio www. .com é outra coisa. Você deve ter algum tipo de mecanismo para limitar os domínios que deseja usar como proxy.

Mas de qualquer forma, tecnicamente você precisa configurar um proxy reverso com a seguinte regra de reescrita de URL (com o módulo ARR instalado):

<?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>

Mas você deve adicionar mais condições para limitar os domínios para os quais você permite a intermediação por proxy.

    
por 02.04.2012 / 13:45