Implantação do Application Request Routing na CDN
por Won Yoo
Esta seção do documento se aplica ao Microsoft Application Request Routing Versão 2 para IIS 7 e Superior.
Meta
Para configurar com êxito um nó de cache filho/borda e um nó de cache pai em uma implantação de hierarquia de cache de 2 camadas em um ambiente CDN/ECN (rede de cache de borda/rede de distribuição de conteúdo). O foco deste passo a passo é entender as regras de reescrita de URL no nó de cache filho/borda e no nó de cache pai. Por fim, este passo a passo passará por instruções passo a passo para configurar a seguinte configuração:
Alguns dos destaques dessa configuração são:
A pesquisa de origem é feita pelo nó de cache filho/borda.
- A lista de clientes (ou seja, a lista de servidores de origem aceitável) é gerenciada explicitamente usando um mapa de reescrita na reescrita de URL.
- Os nomes de host que não são encontrados no mapa de reescrita são bloqueados.
O nó de cache pai é, na maioria das vezes, configurado como um proxy de encaminhamento.
A SAN está configurada para ser compartilhada pelos nós de cache filho/de borda.
Efetivamente, há três camadas de cache:
- Nó de cache filho/borda.
- SAN.
- Nó de cache pai.
Pré-requisitos
Este passo a passo pressupõe que você esteja familiarizado com o cache de disco e configurações de gerenciamento de hierarquia de cache no ARR Versão 2. Caso ainda não o tenha feito, é altamente recomendável examinar as seguintes instruções passo a passo antes de prosseguir:
- Configurar e Habilitar o Cache de Disco no Application Request Routing
- Gerenciamento de hierarquia de cache usando o Application Request Routing
Se o Application Request Routing Versão 2 não tiver sido instalado, baixe-o em:
- Baixe o Microsoft Application Request Routing Versão 2 para IIS 7 (x86) aqui (
https://download.microsoft.com/download/4/D/F/4DFDA851-515F-474E-BA7A-5802B3C95101/ARRv2_setup_x86.EXE
). - Baixe o Microsoft Application Request Routing Versão 2 para IIS 7 (x64) aqui (
https://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ARRv2_setup_x64.EXE
).
Siga as etapas descritas no artigo Instalar o Application Request Routing Versão 2, para instalar o ARR Versão 2.
Configurar o nó de cache filho/de borda
Etapa 1 – Configurar o cache de disco
Configure e habilite o cache de disco seguindo o artigo Instalar Application Request Routing Versão 2. Este artigo também discute como configurar uma SAN para usar como um local de unidade de cache secundário.
Etapa 2 – Definir um farm de servidores para nós de cache pai
Defina um farm de servidores e adicione nós de cache pai seguindo o artigo Gerenciamento de Hierarquia de Cache usando o Application Request Routing.
Etapa 3 – Criar regras de reescrita de URL adicionais para o nó de cache filho/borda
Neste ponto, usando myParentCacheNodes como o nome do farm de servidores, a seguinte regra de reescrita de URL foi escrita no arquivo applicationHost.config, localizado em %windir%\system32\inetsrv\config\
:
<rewrite>
<globalRules>
<rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
</rule>
</globalRules>
</rewrite>
A regra acima não é suficiente para uma implantação de CDN/ECN porque os nós de cache estão em camadas e a próxima camada de nós de cache (ou seja, os nós de cache pai), não saberia como localizar os servidores de origem quando houver uma falha de cache na camada de cache pai.
Este passo a passo resolve o problema fazendo com que o nó de cache filho mapeie o servidor de origem antes que a solicitação seja roteada para o nó de cache pai. Há duas maneiras mais comuns em que os servidores de origem são mapeados com base no URL que o nó de cache filho recebe:
- O cliente da CDN/ECN é especificado como o subdomínio. Nesse caso, pode haver muitas associações de nome de host para o mesmo endereço IP do nó de cache filho.
Por exemplo,http://customer1.mycnd.net/
,http://customer2.mycdn.net/
, etc. - O cliente da CDN/ECN é especificado como o primeiro caminho no URL.
Por exemplo,http://static.mycdn.net/customer1/
,http://static.mycdn.net/customer2/
, etc.
Neste passo a passo, o primeiro exemplo é usado para demonstração. Regras semelhantes também podem ser gravadas para habilitar o segundo cenário.
Defina os mapas de reescrita de URL que podem ser usados para pesquisar o nome do host do servidor de origem. Inicie o Gerenciador do IIS.
Selecione e expanda a raiz do servidor. Este é o nó de cache filho (borda).
Clique duas vezes em Reescrita de URL.
No painel Ações, selecione Exibir Reescrita de Mapas.
No painel Ações, selecione Adicionar Mapa de Reescrita.
Na caixa de diálogo Adicionar Reescrita de Mapa, nomeie o mapa de reescrita, OriginServers.
No mapa de reescrita, você identificará explicitamente o mapeamento entre o nome do host que o nó de cache filho recebe e os nomes de host de origem correspondentes. No painel Ações, selecione Adicionar Entrada de Mapeamento....
Na caixa de diálogo Adicionar Entrada de Mapeamento, adicione o nome do host que o nó de cache filho recebe e o nome do host de origem. No exemplo abaixo, o nó de cache filho do ARR recebe customer1.mycdn.net, como o cabeçalho do nome do host. O servidor de origem correspondente é images.customer1.com.
Repita a Etapa 8 quantas vezes forem necessárias para incluir todos os clientes aos quais a CDN/ECN fornece serviços. É assim que você poderá gerenciar a lista explícita de seus clientes para garantir que seu serviço seja fornecido somente aos seus clientes.
Para bloquear os clientes que não estão na lista de mapas de reescrita, defina o valor padrão desse mapa de reescrita como #, que é um caractere ilegal que não pode ser usado como parte do cabeçalho do nome do host, por RFC. No painel Ações, selecione Editar Configurações do Mapa....
Na caixa de diálogo Editar Mapa de Reescrita, insira # como o valor padrão para este mapa de reescrita.
Reescreva o cabeçalho do nome do host com as regras que foram configuradas no mapa de reescrita do OriginServers. Quando houver uma falha de cache e a solicitação for roteada para o nó de cache pai, a solicitação terá o nome do host que corresponde ao servidor de origem. É por isso que, na maioria das vezes, o nó de cache pai é configurado como um proxy de encaminhamento. Quando há uma falha de cache no nó de cache pai, a solicitação é simplesmente roteada para o servidor de origem com base no cabeçalho do nome do host que o nó de cache pai recebe.
Na interface do usuário de reescrita de URL, localize a regra. Neste passo a passo, o nome da regra deve ser ARR_myParentCacheNodes_loadbalance.
Selecione a regra e no painel Ações, selecione Editar.
SelecioneAdicionar Condições para adicionar duas regras.
A primeira regra usará o mapa de reescrita OriginServers criado na Etapa 6. A regra a seguir corresponderá ao cabeçalho do host como a chave para corresponder às entradas no OriginServers:
A segunda regra definirá o valor padrão como # quando o cabeçalho do host não corresponder às entradas no OriginServers. Conforme observado acima, # não é um caractere válido e não pode ser usado como um nome de host. A regra a seguir é usada posteriormente para garantir que somente os clientes (representados por nomes de host) no OriginServers, sejam atendidos pelo ARR:
Selecione Rastrear grupos de captura entre condições.
Para definir os valores de HTTP_HOST para corresponder às condições acima, selecione Variáveis de Servidor.
Insira os seguintes valores para redefinir HTTP_HOST:
Clique em OK para salvar as alterações.
No painel Ações, selecione Aplicar, para salvar as alterações.
Para verificar se as regras corretas foram escritas, abra o arquivo applicationHost.config usando o Bloco de Notas. O arquivo de configuração está localizado em
%windir%\system32\inetsrv\config\
.Localize a regra de reescrita de URL para o farm de servidores, myParentCacheNodes. Ela será semelhante ao seguinte:
<rewrite> <globalRules> <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions trackAllCaptures="true"> <add input="{OrigServers:{HTTP_HOST}}" pattern="*" /> <add input="{C:1}" negate="true" pattern="#" /> </conditions> <serverVariables> <set name="HTTP_HOST" value="{C:1}" replace="true" /> </serverVariables> <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" /> </rule> </globalRules> </rewrite>
Altamente recomendado. Para bloquear solicitações que não correspondem aos nomes de host definidos no mapa de reescrita acima, crie uma regra de reescrita de URL padrão que envia uma resposta de 400 para essas solicitações.
Inicie o Gerenciador do IIS.
Selecione e expanda a raiz do servidor. Este é o nó de cache filho (borda).
Clique duas vezes em Reescrita de URL.
No painel Ações, selecione Adicionar Regras.
Na caixa de diálogo Adicionar Regras, selecione Regra em branco.
Insira os seguintes valores e salve a regra:
Nome: não é meu cliente
Usar: caracteres curinga
Padrão *:
Tipo de ação: resposta personalizada
Código de status: 400
Código de substatus: 0A ordem das regras é importante. As regras de reescrita de URL são processadas de cima para baixo. Neste exemplo, se o nome do host de entrada corresponder a um dos nomes de host especificados no mapa de reescrita acima, a primeira regra, ARR_myParentCacheNodes_Loadbalance, será executada. Se o nome do host de entrada não corresponder a nenhum dos nomes de host definidos no mapa de reescrita acima, a segunda regra, Não meu cliente, será executada.
A configuração do nó de cache filho/de borda está concluída.
Para simplificar a configuração de nós de cache filho adicionais, uma configuração compartilhada pode ser usada para que haja apenas um local para gerenciar a configuração do nó de cache filho. Caso contrário, as alterações de configuração acima devem ser feitas individualmente em todos os nós de cache filho no ambiente de CDN/ECN. Para saber mais sobre a configuração compartilhada, consulte o artigo Configuração compartilhada.
Configurar o nó de cache pai
Há duas maneiras de configurar o ARR como o nó de cache pai:
- Configure o ARR como o proxy de encaminhamento.
- Configure o ARR como o proxy "inverso" com o mapa de reescrita.
Mesmo com a segunda opção acima, os mapas de reescrita simplesmente reescrevem o nome do host de entrada com o mesmo valor, tornando-o efetivamente um proxy de encaminhamento. O mapa de reescrita é usado para configurar explicitamente a lista de nomes de host que o cache pai aceitará, semelhante à forma como o nó de cache filho é configurado acima. Nesta segunda parte do passo a passo, o nó de cache pai será configurado usando a primeira opção como um proxy de encaminhamento simples.
Etapa 1 – Configurar o cache de disco
Configure e habilite o cache de disco seguindo o artigo Configurar e Habilitar Cache de Disco no Application Request Routing.
Etapa 2 – Configurar o ARR como um proxy de encaminhamento
Habilite o ARR como um proxy. Inicie o Gerenciador do IIS.
Essa configuração não envolve nenhum farms de servidores. Todas as configurações são feitas no nível do servidor.
Clique duas vezes no Cache do Application Request Routing.
No painel Ações, selecione Configurações de Proxy do Servidor.
Selecione a caixa de seleção Habilitar proxy e selecione Aplicar. Você acabou de habilitar o ARR como um proxy no nível do servidor.
Para transformar o ARR em um proxy de encaminhamento, selecione o nó do servidor no painel de navegação.
Clique duas vezes em Reescrita de URL.
No painel Ações, selecione Adicionar regras....
Na caixa de diálogo Adicionar Regras, selecione Regra em branco.
Insira os seguintes valores e salve a regra:
Nome: proxy de encaminhamento
Usar: caracteres curinga
Padrão *:
Condições:
Entrada: {HTTP_HOST}
Tipo: corresponde aos padrões
Padrão *:
Tipo de Ação: reescrever
Reescrita de URL: http://{C:1}/{R:0}A configuração do nó de cache pai está concluída.
Para simplificar a configuração de nós de cache pai adicionais, uma configuração compartilhada pode ser usada para que haja apenas um local para gerenciar a configuração do nó de cache pai. Caso contrário, as alterações de configuração acima devem ser feitas individualmente em todos os nós de cache pai no ambiente de CDN/ECN. Para saber mais sobre a configuração compartilhada, consulte o artigo a seguir.
Resumo
Agora você configurou com êxito nós de cache filho e nós de cache pai em um ambiente de CDN/ECN de hierarquia de cache de 2 camadas usando regras avançadas de reescrita de URL. Para verificar a funcionalidade, siga as Etapas 4 e 5 no artigo Configurar e Habilitar Cache de Disco no Application Request Routing. Se houver erros, habilite as regras de Rastreamento de Solicitação com Falha seguindo as etapas em Usar regras de Rastreamento de Solicitação com Falha para solucionar problemas de Application Request Routing.
Para obter outras instruções passo a passo do ARR Versão 2, confira os documentos no artigo Visão Geral do Application Request Routing Versão 2.