Rotear tráfego com o Gateway de Aplicativo
O Gateway de Aplicativo gerencia as solicitações que aplicativos cliente podem enviar a um aplicativo Web. O Gateway de Aplicativo roteia o tráfego para um pool de servidores Web com base na URL de uma solicitação. Isso é conhecido como roteamento de camada de aplicativo. O pool de servidores Web pode ser composto por máquinas virtuais do Azure, conjuntos de dimensionamento de máquinas virtuais do Azure, Serviço de Aplicativo do Azure e até mesmo servidores locais.
Como o Gateway de Aplicativo roteia solicitações
Os clientes enviam solicitações para seus aplicativos Web para o endereço IP ou o nome DNS do gateway. O gateway roteia as solicitações para um servidor Web selecionado no pool de back-end, usando um conjunto de regras configuradas para o gateway para determinar para onde a solicitação deve ir.
Há dois métodos principais de roteamento de tráfego, o roteamento baseado em caminho e a hospedagem de vários sites. Vamos dar uma olhada nas funcionalidades de cada um.
Roteamento baseado em caminho
O roteamento baseado em caminho permite que você envie solicitações com diferentes caminhos na URL para um pool diferente de servidores de back-end. Por exemplo, você poderia direcionar solicitações com o caminho /video/*
para um pool de back-end contendo servidores otimizados para lidar com streaming de vídeo e direcionar solicitações /images/*
para um pool de servidores que tratam da recuperação de imagens.
Hospedagem de vários sites
A hospedagem de vários sites permite que você configure mais de um aplicativo Web na mesma instância do gateway de aplicativo. Em uma configuração com vários sites, você pode registrar vários nomes DNS (CNAMEs) para o endereço IP do Gateway de Aplicativo, especificando o nome de cada site. O Gateway de Aplicativo usa ouvintes separados para aguardar solicitações para cada site. Cada ouvinte transmite a solicitação para uma regra diferente, o que pode rotear as solicitações para servidores em um pool de back-end diferente. Por exemplo, você pode configurar o Gateway de Aplicativo para direcionar todas as solicitações de http://contoso.com
para servidores em um pool de back-end e as solicitações de http://fabrikam.com
para outro. O seguinte diagrama mostra essa configuração:
As configurações de vários sites são úteis para dar suporte a aplicativos multilocatário, em que cada locatário tem o próprio conjunto de máquinas virtuais ou outros recursos que hospedam um aplicativo Web.
Outras funcionalidades de roteamento
Além do roteamento baseado em caminho e da hospedagem de vários sites, há algumas funcionalidades adicionais ao realizar o roteamento com o Gateway de Aplicativo.
- Redirecionamento: o redirecionamento pode ser usado para outro site ou de HTTP para HTTPS.
- Regenerar cabeçalhos HTTP: os cabeçalhos HTTP permitem que o cliente e o servidor transmitam informações adicionais com a solicitação ou a resposta.
- Páginas de erro personalizadas: o Gateway de Aplicativo permite que você crie páginas de erro personalizadas em vez de exibir as páginas de erro padrão. Você pode usar sua própria identidade visual e layout em uma página de erro personalizada.
Balanceamento de carga no Gateway de Aplicativo
O Gateway de Aplicativo fará automaticamente o balanceamento de carga das solicitações enviadas para os servidores em cada pool de back-end usando um mecanismo de round robin. No entanto, você poderá configurar a adesão da sessão se precisar garantir que todas as solicitações de um cliente na mesma sessão sejam roteadas para o mesmo servidor em um pool de back-end.
O balanceamento de carga funciona com o roteamento de OSI de Camada 7 implementado pelo roteamento do Gateway de Aplicativo, o que significa que ele faz o balanceamento de carga das solicitações de acordo com os parâmetros de roteamento (caminhos e nomes de host) usados pelas regras do Gateway de Aplicativo. Em comparação, outros balanceadores de carga, como o Azure Load Balancer, funcional no nível do OSI de Camada 4 e distribuem o tráfego com base no endereço IP do destino de uma solicitação.
Operar no OSI de Camada 7 permite que o balanceamento de carga aproveite outros recursos fornecidos pelo Gateway de Aplicativo. Esses recursos incluem:
- Suporte para os protocolos HTTP, HTTPS, HTTP/2 e WebSocket.
- Um firewall do aplicativo Web para se proteger contra vulnerabilidades do aplicativo Web.
- Criptografia de solicitação de ponta a ponta.
- Dimensionamento automático, para ajustar dinamicamente a capacidade à medida que a carga de tráfego da Web muda.
Roteamento para o departamento de trânsito
Revisitando nosso cenário no departamento de trânsito, podemos usar o Gateway de Aplicativo para resolver os dois problemas. Podemos usar os recursos de balanceamento de carga e investigação de integridade para garantir que as falhas sejam resolvidas sem afetar os usuários. Também podemos usar o roteamento baseado em caminho para fornecer um único ponto de extremidade para os usuários acessarem sites hospedados em serviços Web diferentes.
Vamos examinar mais detalhadamente como podemos fazer isso.