Proxy Reverso – Modelo de Regra
por Ruslan Yakushev
Os modelos de regra são usados para fornecer uma maneira simples de criar uma ou mais regras de reescrita para um determinado cenário. O Módulo 2 de Reescrita de URL inclui vários modelos de regra para alguns cenários de uso comuns. Além disso, a interface do usuário do Módulo de Reescrita de URL fornece uma estrutura para conectar modelos de regra personalizados. Este passo a passo vai guiar você sobre como usar o modelo de regra "Proxy Reverso" que está incluído no módulo de reescrita de URL. Para saber mais sobre como configurar o proxy reverso com o Módulo de Reescrita de URL do IIS e o Application Request Routing do IIS, consulte Proxy Reverso com Reescrita de URL v2 e Application Request Routing.
Pré-requisitos
Esse passo a passo requer os seguintes pré-requisitos:
- IIS 7 ou superior com serviço de função do ASP.NET habilitado;
- Módulo de reescrita de URL 2.0 instalado;
- Application Request Routing do IIS instalado.
Criar o site de exemplo
Para simplificar, o cenário de proxy reverso com o qual você trabalhará neste passo a passo será implementado em um único servidor, com o "Site Padrão" do IIS atuando como um site de proxy reverso e um aplicativo de conteúdo hospedado em sites IIS separados no mesmo servidor.
Para criar o site de conteúdo de exemplo:
Crie uma pasta chamada "contentsite" na seguinte pasta:
%SystemDrive%\inetpub\ folder.
Crie um site do IIS chamado "contentsite" que aponte para a pasta correspondente em
%SystemDrive%\inetpub\
. Use a porta 8081 para o site.
Você pode usar os seguintes comandos para criar os sites:%windir%\System32\inetsrv\appcmd.exe add site /name:"contentsite" /bindings:http/*:8081: /physicalPath:"%SystemDrive%\inetpub\contentsite
Crie um arquivo chamado default.aspx na seguinte pasta:
%SystemDrive%\inetpub\contentsite
Copie a seguinte marcação ASP.NET, cole-a no arquivo e salve o arquivo como default.aspx:
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Reverse Proxy Test Application</title> </head> <body> <h1>Reverse Proxy Test Page</h1> <p>Requested URL path is <%= Request.ServerVariables["SCRIPT_NAME"] %></p> <p><a href="http://<%= Request.ServerVariables["HTTP_HOST"] + Request.ServerVariables["SCRIPT_NAME"] %>">Here</a> is the link to this page.</p> </body> </html>
Para verificar se o site está funcionando corretamente, abra uma navegação na Web e solicite os seguintes URLs:
http://localhost:8081/default.aspx
Gerar regras de entrada e saída usando o modelo de proxy reverso
O modelo de regra "Proxy Reverso" pode ser usado para gerar a regra de reescrita de entrada que é usada para usar um proxy das solicitações HTTP para outro servidor. Opcionalmente, o modelo também pode criar uma regra de reescrita de saída que pode corrigir os nomes de host nos URLs de links dentro das respostas HTML. No caso de exemplo descrito neste passo a passo, o nome do host do servidor proxy é localhost e o nome do host do servidor de conteúdo é localhost:8081. O aplicativo Web no servidor de conteúdo gera um link na resposta HTML que usa um nome de host interno, por exemplo, http://localhost:8081/default.aspx
. A regra de saída corrige esse link para usar o nome do host do proxy, por exemplo, http://localhost/default.aspx
.
Para criar as regras usando o modelo de regra, siga estas etapas:
- No Gerenciador do IIS, selecione o "Site padrão" no modo de exibição de árvore no lado esquerdo.
- Abra a exibição do recurso Reescrita de URL.
- Na visualização do recurso Reescrita de URL, selecione "Adicionar regras..." e, em seguida, selecione o modelo "Proxy Reverso":
- Na caixa de diálogo "Adicionar regras de proxy reverso", digite o seguinte:
Nome do servidor ou endereço IP para onde as solicitações HTTP serão encaminhadas: localhost:8081
Marque a caixa de seleção "Reescrever os nomes de domínio dos links em respostas HTTP" e digite:
De: localhost:8081
Para: localhost
- Clique em OK. As regras de entrada e de saída serão criadas:
Testar o Proxy Reverso
Para testar se as regras de reescrita geradas pelo modelo de regra funcionam corretamente, abra um navegador da web e faça uma solicitação ao http://localhost/default.aspx
. O "Site padrão" do IIS receberá essa solicitação e a roteará para http://localhost:8081/default.aspx
de acordo com a regra de reescrita de entrada. Quando a resposta HTTP é retornada do site contentsite, a regra de reescrita de saída modifica o URL do link dentro do HTML para reescrever o nome do host de localhost:8081 para localhost:
Resumo
Neste passo a passo, você aprendeu a usar o modelo de regra "Proxy Reverso" para gerar regras de reescrita para implementar uma configuração de proxy reverso simples no IIS. Esse modelo de regra pode ser usado como um ponto de partida para gerar as regras básicas que podem ser ajustadas ou modificadas posteriormente para atender aos requisitos específicos de roteamento e reescrita que você tem para seu aplicativo web.