Criar páginas de erro personalizadas do Application Gateway
O Application Gateway permite que você crie páginas de erro personalizadas em vez de exibir as padrão. Você pode usar sua marca e layout para erros relacionados a diferentes códigos de resposta. Alguns cenários para definir páginas de erro personalizadas são:
- Mostrando uma página de manutenção ou status para o código de resposta 502 Bad Gateway. Isso é útil quando o gateway de aplicativos não tem um servidor de back-end para o qual rotear o tráfego durante a manutenção agendada ou um problema imprevisto com servidores de pool de back-end.
- Mostrando uma página de acesso não autorizado personalizada para o código de resposta 403 Proibido que ocorre quando o WAF está no modo de prevenção e bloqueia o tráfego mal-intencionado.
- Mostrar uma página da marca da empresa com detalhes de contato em caso de problema.
Códigos de resposta suportados
As páginas de erro personalizadas são suportadas para os seguintes códigos de resposta:
Código de resposta | Description |
---|---|
400 | Solicitação incorreta (Na visualização) |
403 | Proibido |
405 | Método não permitido (Na pré-visualização) |
408 | Tempo limite de solicitação (Na visualização) |
500 | Erro interno do servidor (na visualização) |
502 | Gateway ruim |
503 | Serviço indisponível (Em pré-visualização) |
504 | Tempo limite do gateway (na visualização) |
Nota
- A API versão 2022-09-01 ou posterior deve ser usada para configurar páginas de erro para os novos códigos de resposta (em visualização).
- O código de resposta 404 (Página não encontrada) não é suportado no momento.
- As páginas de erro personalizadas são exibidas para códigos de resposta gerados pelo Application Gateway. Se um erro se originar do servidor back-end, ele será passado sem modificações para o cliente.
Níveis de configuração
As páginas de erro personalizadas podem ser definidas em um nível Global ou Listener:
- Nível global - As páginas de erro definidas em um nível global são aplicadas a todos os ouvintes desse gateway de aplicativo. Sua configuração por meio do portal do Azure não é suportada no momento.
- Nível de ouvinte - As páginas de erro em um nível de ouvinte oferecem controle granular para definir páginas de erro para o aplicativo servido por esse ouvinte.
Nota
Ao usar uma combinação de páginas de erro no nível Global e Listener para um gateway, você deve mencionar explicitamente as URLs de todos os códigos de resposta desejados para esse ouvinte. Uma configuração específica do ouvinte substitui todas as configurações globais anteriores aplicáveis a esse ouvinte.
Requisitos
Para criar uma página de erro personalizada, você deve
- Conheça o código de resposta para o qual é necessária uma página de erro personalizada.
- conheça o local remoto (URL) correspondente para a página HTML. Este deve ser um ficheiro acessível ao público.
- Verifique se a página de erro está acessível publicamente e retorne uma resposta 200.
- Verifique se a página de erro deve estar no tipo de extensão *.htm ou *.html.
- certifique-se de que o tamanho da página é inferior a 1 MB.
Você pode fazer referência a imagens/CSS internos ou externos para este arquivo HTML. Para recursos referenciados externamente, utilize URLs absolutos acessíveis publicamente. Esteja ciente do tamanho do arquivo HTML ao usar imagens embutidas codificadas em base64, JavaScript ou CSS.
Nota
- No ecossistema do Azure, você deve usar uma conta de armazenamento de Blob do Azure ou uma Máquina Virtual para hospedar uma página de erro. Observação O armazenamento de Blob deve ser diretamente acessível, pois as contas de armazenamento encabeçadas pelos serviços CDN do Azure não são suportadas no momento.
- Você também pode optar por hospedar as páginas de erro em qualquer local remoto.
- Não há suporte para links relativos.
Como funciona?
Depois de especificar uma página de erro na configuração do gateway de aplicativo, o gateway verifica a conectividade com a página HTML pela Internet. Em seguida, ele baixa o arquivo em seu cache local.
Quando um cliente enfrenta um erro, seu gateway de aplicativo retorna um código de resposta e essa página HTML. Todos os recursos referenciados externamente (como imagens, JavaScript e arquivos CSS) são buscados diretamente pelo cliente.
Seu gateway de aplicativo não verifica periodicamente a localização do arquivo de origem para buscar uma nova versão. Você pode executar qualquer atualização de configuração no gateway para atualizar manualmente o cache do arquivo. Por exemplo, alterar o URL de erro da página 1 para a página 2 e, em seguida, voltar para a página 1 ou ao adicionar um novo ouvinte.
Configuração do portal
Etapas para configurar páginas de erro personalizadas específicas do ouvinte:
Navegue até Application Gateway no portal e escolha o recurso necessário.
Selecione Ouvintes e navegue até um ouvinte específico para o qual você deseja especificar uma página de erro.
Na seção Páginas de erro personalizadas, especifique URLs acessíveis publicamente para os códigos de status necessários.
Selecione Guardar.
Configuração do Azure PowerShell
Você pode usar o Azure PowerShell para configurar uma página de erro personalizada. Por exemplo, uma página de erro personalizada global:
$appgw = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>
$updatedgateway = Add-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"
Set-AzApplicationGateway -ApplicationGateway $appgw
Ou uma página de erro de nível de ouvinte:
$appgw = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>
$listener01 = Get-AzApplicationGatewayHttpListener -Name <listener-name> -ApplicationGateway $appgw
$updatedlistener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"
Set-AzApplicationGateway -ApplicationGateway $appgw
Para obter mais informações, consulte Add-AzApplicationGatewayCustomError e Add-AzApplicationGatewayHttpListenerCustomError.
Próximos passos
Para obter informações sobre o diagnóstico do Application Gateway, consulte Integridade do back-end, logs de diagnóstico e métricas para o Application Gateway.