Compartilhar via


Implantando o roteamento de solicitação de aplicativo na CDN

por Won Yoo

Esta seção do documento se aplica ao Roteamento de Solicitações de Aplicativo da Microsoft versão 2 para IIS 7 e Superior.

Objetivo

Para configurar com êxito um nó de cache de borda/filho e um nó de cache pai em uma implantação de hierarquia de cache em duas camadas em um ambiente CDN/ECN (rede de distribuição de conteúdo/rede de cache de borda). O foco deste passo a passo é entender as regras de reescrita de URL no nó de cache periférico 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:

Diagrama mostrando uma visão geral da conexão entre o servidor de origem, os nós pai, os nós filho e o S A N.

Alguns dos destaques dessa configuração são:

  • A pesquisa de origem é feita pelo nó de cache secundário/edge.

    • A lista de clientes (ou seja, a lista de servidores de origem aceitável) é gerenciada explicitamente usando um mapa de reescrita na regravação 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 ou periférico.

    • 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 as configurações de gerenciamento de cache do disco e de hierarquia de cache no ARR Versão 2. Se você ainda não fez isso, é altamente recomendável que você examine os seguintes passo a passo antes de prosseguir:

Se o Roteamento de Solicitação de Aplicativo versão 2 não tiver sido instalado, você poderá baixá-lo em:

  • Roteamento de Solicitação de Aplicativo da Microsoft 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).
  • 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 Roteamento de Solicitação de Aplicativo versão 2 para instalar o ARR Versão 2.

Configurando 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 o 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 uma fazenda de servidores para nodos de cache pai

Defina uma fazenda de servidores e adicione nós de cache pai seguindo o artigo Gerenciamento de Hierarquia de Cache usando o Roteamento de Solicitação de Aplicativo.

Etapa 3 – Criar regras de regravação 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 na 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 anfitrião 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 na 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 escritas para habilitar o segundo cenário.

  1. Defina os mapas de regravação 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 secundário (edge).

    Captura de tela mostrando o nó de cache filho expandido.

  3. Clique duas vezes em URL Rewrite.

  4. No painel Ações , clique em Exibir Reescrever Mapas.

    Captura de tela do painel Ações mostrando a opção Exibir Reescrever Mapas.

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

    Captura de tela do painel Ações mostrando a opção Adicionar Mapa de Reescrita.

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

    Captura de tela da caixa de diálogo Adicionar mapa de regravação mostrando OriginServers no campo de entrada.

  7. No mapa de reescrita, você identificará explicitamente o mapeamento entre o nome do host que o nó de cache secundário recebe e os nomes de host correspondentes de origem. No painel Ações , clique em Adicionar Entrada de Mapeamento....

    Captura de tela do menu Ações mostrando a opção Adicionar Entrada de Mapeamento.

  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 cabeçalho do nome do host. O servidor de origem correspondente é images.customer1.com.

    Captura de tela da caixa de diálogo Adicionar Entrada de Mapeamento com as informações de exemplo inseridas.

  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ê pode 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 , clique em Editar Configurações do Mapa....

    Captura de tela do menu Ações.

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

    Captura de tela da caixa de diálogo Editar Mapa de Reescrita. O caractere # está no valor padrão a ser usado quando a chave não é encontrada na caixa de entrada do mapa. OK está selecionado.

  12. Reescreva o cabeçalho do nome do host com as regras que foram configuradas no mapa de regravação 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 dos casos, 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 de reescrita de URL, localize a regra. Neste passo a passo, o nome da regra deve ser ARR_myParentCacheNodes_loadbalance.

    Captura de tela mostrando as configurações de regra de exemplo.

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

  15. Clique em Adicionar Condições para adicionar duas regras.

  16. A primeira regra usará o mapa de reescrita OriginServers que você criou na Etapa 6. A regra a seguir corresponderá ao cabeçalho do host como a chave para corresponder às entradas no OriginServers:

    Captura de tela da caixa de diálogo Adicionar Condição mostrando os dados do servidor de origem onde o Pattern está definido como *.

  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:

    Captura de tela da caixa de diálogo Adicionar Condição com Padrão definido como padrão.

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

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

  20. Insira os seguintes valores para redefinir HTTP_HOST:

    Captura de tela da caixa de diálogo Variáveis de Servidor.

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

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

  23. Para verificar se as regras corretas foram gravadas, abra o arquivo applicationHost.config usando o Bloco de Notas. O arquivo de configuração está localizado em %windir%\system32\inetsrv\config\.

  24. Identifique a regra de reescrita de URL para a fazenda de servidores, myParentCacheNodes. Deveria ficar parecido com o 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 400 para essas solicitações.

    Inicie o Gerenciador do IIS.

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

    Captura de tela mostrando um servidor expandido.

  27. Clique duas vezes em URL Rewrite.

  28. No painel Ações , clique em Adicionar Regras.

    Captura de tela do menu Ações mostrando a opção Adicionar Regras.

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

    Captura de tela da caixa de diálogo Adicionar regras com a regra em branco selecionada.

  30. Insira os seguintes valores e salve a regra:
    Nome: Não é meu cliente
    Usando: Curingas
    Padrão: *
    Tipo de ação: Resposta personalizada
    Código de status: 400
    Código de sub-status: 0

    Captura de tela mostrando a caixa de diálogo da variável de regras.

  31. A ordem das regras é importante. As regras de regravação 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.

    Captura de tela mostrando 2 regras.

  32. A configuração do nó de cache filho/de borda está concluída.

Para simplificar a configuração de nós de cache secundários adicionais, pode-se usar uma configuração compartilhada, garantindo um único ponto de gerenciamento para a configuração do nó de cache secundário. Caso contrário, as alterações de configuração acima devem ser feitas individualmente em todos os nós de cache secundários no ambiente CDN/ECN. Para saber mais sobre a configuração compartilhada, consulte o artigo configuração compartilhada .

Configurando o nó de cache principal

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 proxy reverso usando 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, fazendo com que ele funcione efetivamente como 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 Roteamento de Solicitações de Aplicativo .

Etapa 2 – Configurar o ARR como um proxy de encaminhamento

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

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

    Captura de tela mostrando o servidor com seleções expandidas. O nome do servidor está realçado.

  3. Clique duas vezes no Cache de Roteamento de Solicitação de Aplicativo.

    Captura de tela mostrando as conexões e os painéis principais. O painel principal mostra os ícones de função do servidor.

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

    Captura de tela do painel Ações mostrando a opção Configurações de Proxy do Servidor.

  5. Selecione a caixa de seleção Habilitar proxy e clique em 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, clique no nó do servidor no painel de navegação.

    Captura de tela mostrando opções de navegação.

  7. Clique duas vezes em URL Rewrite.

  8. No painel Ações , clique em Adicionar Regras....

    Captura de tela do painel Ações mostrando a opção Adicionar Regras.

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

    Captura de tela mostrando a caixa de diálogo Adicionar regras. O ícone de regra em branco está realçado.

  10. Insira os seguintes valores e salve a regra:
    Nome: Proxy de encaminhamento
    Usando: Curingas
    Padrão: *
    Condições:
    Entrada: {HTTP_HOST}
    Tipo: Corresponde ao padrão
    Padrão: *
    Tipo de ação: Reescrever
    REESCREVER URL: http://{C:1}/{R:0}

    Captura de tela mostrando a caixa de diálogo com os valores de exemplo.

  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 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 secundário e nós de cache primário em um ambiente de hierarquia de cache de 2 camadas em CDN/ECN, utilizando regras avançadas de reescrita de URL. Para verificar a funcionalidade, você pode seguir as Etapas 4 e 5 no artigo Configurar e Habilitar Cache de Disco no Roteamento de Solicitações de Aplicativo . Se houver erros, habilite as regras de Rastreio de Solicitações com Falha seguindo as etapas no artigo Usando Regras de Rastreamento de Solicitações com Falha para Solucionar Problemas de Roteamento de Solicitação de Aplicativos.

Para obter outros passo a passo da versão 2 do ARR, consulte os documentos no artigo Visão geral do Roteamento de Solicitações de Aplicativo versão 2 .