Proxy reverso do IIS 7 baseado no host do nome de domínio?

2

Como eu configuraria o ARR do IIS 7.0 e a Rewrite de URL para inverter o proxy com base em um host.

Por exemplo:

http://website1.mydomain.com gets routed internally to internalserver\website1

http://website2.mydomain.com gets routed internally to internalserver2\website2

http://website3.mydomain.com gets routed internally to internalserver2 (default website)

FYI - O site do DNS público1.mydomain.com e o restante estão todos apontando para o IP público de mydomain.com.

Observe que isso não é tudo o mesmo servidor. Existem vários servidores da Web dentro do firewall e um servidor da Web padrão, cujas portas 80 e 443 estão expostas ao exterior. Eu tenho um endereço IP e um nome de domínio. Assim, como tenho vários servidores da Web dentro do meu firewall, preciso rotear os subdomínios do nome do host para diferentes servidores da Web no interior.

Qualquer passo detalhado ajudaria tremendamente.

    
por Matias Nino 06.05.2011 / 22:22

3 respostas

3

Como você está confiando no nome de domínio em vez de no IP (que é mais fácil nessa situação), aqui está a maneira mais direta de fazer isso:

  • Verifique se o seu servidor externo tem ligações para os três sites com base no cabeçalho do host (website1.mydomain.com, etc). Você pode deixar o endereço IP como (Todos não atribuídos). Você provavelmente já fez isso. - Basicamente, o que quero dizer é adicionar uma ligação ao primeiro site que é "website1.mydomain.com" e aos outros dois sites de maneira semelhante. Aqui está um passo a passo sobre ligações .

  • crie 2 Web Farms em ARR no servidor ARR. Um para internalserver e outro para internalserver2. Use os IPs primários desses servidores. Você pode configurar três Web Farms diferentes se quiser verificações de integridade exclusivas para cada site. Tudo bem que dois deles apontam para o mesmo servidor. - Etapas: Crie um novo farm de servidores chamado InternalServer e adicione um único servidor a ele, que é "internalserver". Em seguida, crie outro Farm de Servidores chamado InternalServer2 e adicione apenas "internalserver2" a ele.

  • na última etapa do assistente ao criar o site, quando ele pergunta se você deseja que o ARR crie uma regra para você, diga apenas "sim" na primeira vez. Tome nota da regra que cria para que você possa aprender com isso. Em seguida, exclua-o. Você quer gerenciar suas próprias regras. - Vou explicar as regras no próximo passo.
  • você deve definir três regras de regravação de URL no nível global (nó do servidor IIS, não o nó do site). URL =. *, Use uma condição com {HTTP_HOST} para o seu nome de domínio, e a ação deve ser encaminhada ao webfarm correspondente. - Aqui está um introdução à reescrita de URL . Siga essas etapas e insira uma regra como a abaixo:

Exemplo de regravação de URL:

<rule name="site1" patternSyntax="ECMAScript" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="^website1\.mydomain\.com$" />
  </conditions>
  <action type="Rewrite" url="http://InternalServer1/{R:0}" />
</rule>
    
por 18.05.2011 / 16:32
1

Se você estiver usando um SonicWALL, poderá fazer isso:

  1. Criar um objeto de endereço de rede > do tipo FQDN na WAN.
  2. Adicione uma Política de NAT > NAT para traduzir esse Objeto de Endereço para o servidor da web interno.
  3. Adicione a regra em Firewall > Regras de acesso para permitir o tráfego HTTP em cada servidor.

Se você usa um firewall diferente, veja se consegue fazer algo parecido com o seu.

    
por 24.05.2011 / 01:58
0

Como está tudo no mesmo servidor, por que não criar apenas três sites separados com ligações aos subdomínios especificados?

    
por 23.05.2011 / 21:27