Share via


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:

Diagram showing an overview of the connection between the origin server, parent nodes, child nodes, and S A N.

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:

      1. Nó de cache filho/borda.
      2. SAN.
      3. 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:

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:

  1. 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.
  2. 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.

  1. 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.

  2. Selecione e expanda a raiz do servidor. Este é o nó de cache filho (borda).

    Screenshot showing the child cache node expanded.

  3. Clique duas vezes em Reescrita de URL.

  4. No painel Ações, selecione Exibir Reescrita de Mapas.

    Screenshot of the Actions pane showing the View Rewrite Maps option.

  5. No painel Ações, selecione Adicionar Mapa de Reescrita.

    Screenshot of the Actions pane showing the Add Rewrite Map option.

  6. Na caixa de diálogo Adicionar Reescrita de Mapa, nomeie o mapa de reescrita, OriginServers.

    Screenshot of the Add rewrite map dialog showing OriginServers in the input box.

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

    Screenshot of the Actions menu showing the Add Mapping Entry option.

  8. 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.

    Screenshot of the Add Mapping Entry dialog with the example information entered.

  9. 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.

  10. 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....

    Screenshot of the Actions menu.

  11. Na caixa de diálogo Editar Mapa de Reescrita, insira # como o valor padrão para este mapa de reescrita.

    Screenshot of the Edit Rewrite Map dialog. The character # is in the Default value to use when key is not found in the map input box. OK is selected.

  12. 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.

  13. 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.

    Screenshot showing the example rule settings.

  14. Selecione a regra e no painel Ações, selecione Editar.

  15. SelecioneAdicionar Condições para adicionar duas regras.

  16. 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:

    Screenshot of the Add Condition dialog showing origin server data with Pattern is set to *.

  17. 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:

    Screenshot of the Add Condition dialog with Pattern set to the default.

  18. Selecione Rastrear grupos de captura entre condições.

  19. Para definir os valores de HTTP_HOST para corresponder às condições acima, selecione Variáveis de Servidor.

  20. Insira os seguintes valores para redefinir HTTP_HOST:

    Screenshot of the Server Variables dialog.

  21. Clique em OK para salvar as alterações.

  22. No painel Ações, selecione Aplicar, para salvar as alterações.

  23. 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\.

  24. 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>
    
  25. 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.

  26. Selecione e expanda a raiz do servidor. Este é o nó de cache filho (borda).

    Screenshot showing a server expanded.

  27. Clique duas vezes em Reescrita de URL.

  28. No painel Ações, selecione Adicionar Regras.

    Screenshot of the Actions menu showing the Add Rules option.

  29. Na caixa de diálogo Adicionar Regras, selecione Regra em branco.

    Screenshot of the Add rules dialog with Blank rule selected.

  30. 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: 0

    Screenshot showing the rules variable dialog.

  31. A 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.

    Screenshot showing 2 rules.

  32. 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:

  1. Configure o ARR como o proxy de encaminhamento.
  2. 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

  1. Habilite o ARR como um proxy. Inicie o Gerenciador do IIS.

  2. Essa configuração não envolve nenhum farms de servidores. Todas as configurações são feitas no nível do servidor.

    Screenshot showing the server with expanded selections. The server name is highlighted.

  3. Clique duas vezes no Cache do Application Request Routing.

    Screenshot showing the connections and main panes. The main pane shows the server function icons.

  4. No painel Ações, selecione Configurações de Proxy do Servidor.

    Screenshot of the Actions pane showing the Server Proxy Settings option.

  5. 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.

  6. Para transformar o ARR em um proxy de encaminhamento, selecione o nó do servidor no painel de navegação.

    Screenshot showing navigation options.

  7. Clique duas vezes em Reescrita de URL.

  8. No painel Ações, selecione Adicionar regras....

    Screenshot of the Actions pane showing the Add Rules option.

  9. Na caixa de diálogo Adicionar Regras, selecione Regra em branco.

    Screenshot showing the Add rules dialog. The Blank rule icon is highlighted.

  10. 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}

    Screenshot showing the dialog with the example values.

  11. 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.