Visão geral do IIS ARR
ARR é um complemento (plugin) que se instala no IIS e que permite transformar o servidor Web do Windows em Reverse Proxy.
ARR é um complemento gratuito que é instalado em um serviço IIS e permite:
- Fazer roteamento HTTP(S)
- Distribuição de carga (balanceamento de carga)
- Descarregando SSL.
- CDN (cache)
Exemplo de implantação com IIS/ARR:

Pré-requisitos
Para configurar o ARR, você precisará de:
- Serviços da Web para publicar (IIS/Apache/nginx…)
- Um servidor com o IIS instalado.
Instalando o ARR
No console do IIS, inicie o Web Platform Installer.
Na caixa de pesquisa, digite ARR 1 e pressione Enter no teclado.

Selecione Application Request Routing 3.0 Beta 1 e pressione o botão Adicionar 2.

Clique no botão Instalar 1.

Clique em Aceito 1.

Aguarde enquanto instala.

Os 3 componentes necessários para a instalação e operação do ARR estão instalados, clique em Concluir 1 para fechar o assistente de instalação.

Reinicie o console do IIS, os componentes de administração ARR 1 devem estar disponíveis.

Configuração: Roteamento Simples
Nesta parte vamos configurar um roteamento simples do protocolo HTTP. As requisições HTTP chegarão ao servidor ARR e este as transferirá para o servidor WEB que hospeda o(s) site(s).
A primeira etapa é criar um Farm de Servidores que corresponda a um ou mais servidores Web que hospedam o aplicativo e, em seguida, modificar a regra de regravação para roteamento para o farm correto com base no URL.
Selecione Server Farm 1, clique com o botão direito nele e clique em Create Server Farm … 2 ou vá até o menu Actions.

Insira o nome do Farm de Servidores 1 (por convenção o nome DNS de acesso), marque a caixa Online 2 caso não seja feito e clique em Próximo 3.

Digite o nome ou IP dos servidores que hospedam o site 1 e clique em Adicionar 2.

Depois que os servidores forem adicionados 1 clique no botão Concluir 2.

Clique em Sim 1 para confirmar a criação automática da regra de reescrita (roteamento).

As regras automáticas dependem do nome do farm para fazer a regravação. Veremos mais adiante como modificar as regras de confiabilidade.
O primeiro “server farm” 1 é criado e está disponível na interface de administração do IIS.

Expanda a pasta Server Farms 1 e selecione o farm recém-criado 2. Na área central 3 estão as ações disponíveis.

Vamos agora dar uma olhada mais de perto nas regras de reescrita.
Clique em Regras de Roteamento 1.

No menu Ações, clique em Reescrever URL … 1.

Vemos a regra de encaminhamento criar automaticamente 1. Clique duas vezes nele para exibir os detalhes da regra.

No caso de um único servidor Web hospedar todos os sites em vhosts (sites), seria possível fazer uma única regra mantendo o cabeçalho do host.
A : vemos aqui que o tráfego que chega no servidor é encaminhado e não reescrito como podemos ver na lista de regras. Agora vamos limitar a transferência para a url lab.rdr-it.intra. Clique em Condições 1.

Clique no botão Adicionar 1. Na nova janela que se abre, digite a variável do servidor que vamos testar aqui {HTTP_HOST} 2, no campo modelo 03 digite o (sub)domínio a ser processado e clique em OK 4 para salvar a condição.

A : a condição é adicionada, clique em Aplicar 1 para levá-la em consideração.

Para os propósitos do tutorial, adicionei um segundo site arr-demo.rdr-it.intra que passa pelo ARR e que está hospedado no mesmo servidor IIS.
Os registros DNS do tipo A de site devem apontar para o servidor ARR.

Inicie um navegador de internet e acesse os sites.

Para validar a passagem no ARR, é possível verificá-la no nível dos logs do IIS que está em C:/inetpub/LogFiles/W3SVC1 (por padrão). A passagem pelo ARR também pode ser monitorada no nível de monitoramento 1 na fazenda com uma página dedicada às estatísticas 2.


Configuração: Descarregamento SSL
O objetivo do descarregamento SSL é publicar um site usando ARR sobre HTTPS e fazer com que o servidor ARR se comunique com o servidor web por HTTP. Esta solução alivia o servidor web da criptografia.
Instalando o certificado no servidor ARR
Como o ARR está vinculado a um único site (site padrão) no IIS, se vários domínios devem ser suportados, é necessário ter um certificado do tipo SAN.
Para o tutorial, gerei um certificado autoassinado em *.rdr-it.intra para cobrir todos os subdomínios. Aqui você encontrará um gerador de certificado autoassinado.
Vá para a raiz do console do IIS 1 e depois em Certificados do servidor 2.

Clique em Importar 1 no menu Ações. Selecione o certificado no formato pfx 2, digite a chave privada (senha) 3, escolha o armazenamento de armazenamento 4 (Web Hosting) e clique em OK 5 .

O certificado é importado 1>.

Exiba a lista de sites disponíveis no servidor clicando na pasta Sites 1, selecione o site padrão 2, clique com o botão direito nele e clique em Bindings… 3.

Clique no botão Adicionar 1.

Tipo de link escolha https 1, selecione o certificado 2 e pressione o botão OK 3.

A associação HTTPS é adicionada 1. Saia clicando em Fechar 2.

Configurando Regras de Reescrita – Roteamento
Vá para a página de gerenciamento de regras de reescrita.
Adicione uma nova regra no menu Ação clicando em Adicionar Regras 1, escolha Regra Vazia 2 e clique em OK 3.

Nomeie a regra 1, clique em Condições 2 para expandir a opção, adicione as duas regras 3 (a primeira verifica se a chamada é feita em https e a segunda limita o domínio). Na parte Ação, selecione o esquema 4, depois o farm de servidores 5 e clique em Aplicar 6.

Retorne à lista de regras, é adicionado 1.

Inicie um navegador e acesse o site em https.

Como pode ser visto abaixo, não há ligação SSL no site IIS .

Para forçar o acesso em HTTPS (SSL), é necessário adicionar antes da regra de descarga, uma regra que realize um redirecionamento 301 HTTP para HTTPS.
Configuração: habilitar cache
Um dos recursos disponíveis com o ARR é o sistema de cache, que salva requisições em servidores web.
No servidor criou uma pasta para armazenar o cache.
No console do IIS, clique em Application Request Routing 1.

No menu Ações, clique em Adicionar unidade… 1.

Digite o caminho da pasta 1, defina um limite 2 e clique em OK 3.

O armazenamento para o cache é declarado 1.

Vá para um dos sites declarados no farm 1 e clique em Caching 2.

Se este não for o caso, ative o cache marcando a caixa 1 Habilitar cache de disco e clique em Aplicar 2.

Atualize o site onde o cache está ativado.
Abra a pasta onde o cache está escrito, você deve ter arquivos A.
