Solucionar problemas comuns do Azure Front Door
Este artigo descreve como solucionar alguns dos problemas comuns de roteamento que você pode enfrentar na sua configuração do Azure Front Door.
Outros cabeçalhos HTTP de depuração
Você pode solicitar ao Azure Front Door para retornar cabeçalhos de resposta HTTP de depuração extras. Para saber mais, confira os cabeçalhos de resposta opcionais.
Resposta 503 ou 504 do Azure Front Door após alguns segundos
Sintoma
- As solicitações regulares enviadas ao back-end sem passar pelo Azure Front Door têm sucesso. Passar pelo Azure Front Door resulta em respostas de erro 503 ou 504.
- A falha do Azure Front Door normalmente é mostrada após cerca de 30 segundos.
- São exibidos erros 503 intermitentes com "ErrorInfo: OriginInvalidResponse".
Causa
A causa desse problema pode ser uma das três coisas:
- A origem está demorando mais do que o tempo limite configurado para receber a solicitação do Azure Front Door. O tempo limite padrão é 30 segundos.
- O tempo necessário para enviar uma resposta à solicitação do Azure Front Door está demorando mais do que o valor de tempo limite.
- O cliente enviou uma solicitação de intervalo de bytes com um cabeçalho Accept-Encoding, o que significa que a compactação está habilitada.
Etapas para solucionar problemas
Envie a solicitação à sua origem diretamente, sem passar pelo Azure Front Door. Veja quanto tempo a origem normalmente leva para responder.
Envie a solicitação por meio do Azure Front Door e veja se você está recebendo qualquer resposta 503. Caso contrário, o problema pode não ser um problema de tempo limite. Crie uma solicitação de suporte para solucionar o problema detalhadamente.
Se as solicitações que passam pelo Azure Front Door resultarem em um código de resposta de erro 503 e, em seguida, configure o Tempo limite de resposta de origem para o Azure Front Door. Você pode aumentar o tempo limite padrão para até 4 minutos (240 segundos). Para definir a configuração, vá até a página de visão geral do perfil do Front Door. Selecione Tempo limite da resposta de origem e insira um valor entre 16 e 240 segundos.
Observação
A capacidade de configurar o tempo limite de resposta da Origem só está disponível no Azure Front Door Standard/Premium.
Se o aumento do tempo limite não resolver o problema, use uma ferramenta como o Fiddler ou a ferramenta de desenvolvedor do navegador para verificar se o cliente está enviando solicitações de intervalo de bytes com cabeçalhos Accept-Encoding. O uso dessa opção faz com que a origem responda com diferentes tamanhos de conteúdo.
Se o cliente está enviando solicitações de intervalo de bytes com cabeçalhos Accept-Encoding, você tem duas opções. A primeira opção é desabilitar a compactação na origem ou no Azure Front Door. A segunda opção é criar um conjunto de regras para remover o cabeçalho Accept-Encoding da solicitação das solicitações de intervalo de bytes.
503 respostas da porta frontal do Azure somente para HTTPS
Sintoma
- Todas as respostas 503 só são retornadas para pontos de extremidade habilitados para HTTPS do Azure Front Door.
- As solicitações regulares enviadas ao back-end sem passar pelo Azure Front Door têm sucesso. Passar pelo Azure Front Door resulta em respostas de erro 503.
- São exibidos erros 503 intermitentes com "ErrorInfo: OriginInvalidResponse".
Causa
A causa desse problema pode ser uma de três coisas:
- O pool de back-end é um endereço IP.
- O servidor back-end retorna um certificado que não corresponde ao FQDN (nome de domínio totalmente qualificado) do pool de back-end do Azure Front Door.
- O pool de back-end é um servidor de Aplicativos Web do Azure.
Etapas para solucionar problemas
O pool de back-end é um endereço IP.
EnforceCertificateNameCheck
deve ser desabilitado.O Azure Front Door tem uma opção chamada
EnforceCertificateNameCheck
. Por padrão, essa configuração está habilitada. Quando ela está habilitada, o Azure Front Door verifica se o FQDN do nome do host do pool de back-end corresponde ao nome do certificado do servidor de back-end ou a uma das entradas na extensão de nomes alternativos da entidade.Como desabilitar
EnforceCertificateNameCheck
no portal do Azure:No portal, use um botão de alternância para ativar ou desativar essa configuração no painel Design do Azure Front Door (clássico).
Para a camada Standard e Premium do Azure Front Door, encontre essa configuração nas configurações de origem ao adicionar uma origem a um grupo de origens ou configurar uma rota.
O servidor back-end retorna um certificado que não corresponde ao FQDN do pool de back-end do Azure Front Door. Para resolver esse problema, você tem duas opções:
- O certificado retornado precisa corresponder ao FQDN.
EnforceCertificateNameCheck
deve ser desabilitado.
O pool de back-end é um servidor de Aplicativos Web do Azure:
- Verifique se o aplicativo Web do Azure está configurado com o SSL baseado em IP em vez de ser baseado em SNI (Indicação de Nome de Servidor). Se o aplicativo Web estiver configurado como baseado em IP, ele deverá ser alterado para SNI.
- Se o back-end não estiver íntegro devido a uma falha do certificado, uma mensagem de erro 503 será retornada. Você pode verificar a integridade dos back-ends nas portas 80 e 443. Se apenas a porta 443 não estiver íntegra, isso provavelmente será um problema com o SSL. Como o back-end está configurado para usar o FQDN, sabemos que ele está enviando o SNI.
Use o OpenSSL para verificar o certificado que está sendo retornado. Para fazer essa verificação, conecte-se ao back-end usando
-servername
. Ele deve retornar o SNI, que precisa corresponder ao FQDN do pool de back-end:openssl s_client -connect backendvm.contoso.com:443 -servername backendvm.contoso.com
As solicitações enviadas para o domínio personalizado retornam um código de status 400
Sintoma
- Você criou uma instância do Azure Front Door. Uma solicitação para o domínio ou o host de front-end retorna um código de status HTTP 400.
- Você criou um mapeamento DNS (servidor de nomes de domínio) de um domínio personalizado para o host de front-end configurado. O envio de uma solicitação para o nome do host do domínio personalizado retorna um código de status HTTP 400. Ele não parece rotear para o back-end que você configurou.
Causa
O problema ocorre se você não tiver configurado uma regra de roteamento para o domínio personalizado que foi adicionado como o host de front-end. Uma regra de roteamento precisa ser adicionada explicitamente para esse host de front-end. Você precisa criar a regra mesmo que uma regra de roteamento já tenha sido configurada para o host de front-end no subdomínio do Azure Front Door, que é *.azurefd.net.
Etapa de solução de problemas
Adicione uma regra de roteamento ao domínio personalizado para direcionar o tráfego para o pool de back-end selecionado.
O Azure Front Door não redireciona HTTP para HTTPS
Sintoma
O Azure Front Door tem uma regra de roteamento que redireciona HTTP para HTTPS, mas o acesso ao domínio ainda mantém o HTTP como o protocolo.
Causa
Esse comportamento pode acontecer se você não tiver configurado as regras de roteamento corretamente para o Azure Front Door. A configuração atual não é específica e pode ter regras conflitantes.
Etapas para solucionar problemas
A solicitação para um nome de host de front-end retorna um código de status 411
Sintoma
Você criou uma instância Standard/Premium do Azure Front Door e configurou:
- Um host de front-end.
- Um grupo de origem com, pelo menos, uma origem.
- Uma regra de roteamento que conecta o host de front-end ao grupo de origem.
O conteúdo não parece estar disponível ao enviar uma solicitação para o host de front-end configurado, porque o código de status HTTP 411 é retornado.
As respostas a essas solicitações também podem conter uma página de erro HTML no corpo da resposta que inclui uma instrução explicativa. Um exemplo disso é o "erro HTTP 411. A solicitação precisa estar em partes ou ter um comprimento de conteúdo."
Causa
Há várias causas possíveis para esse sintoma. O motivo geral é que a solicitação HTTP não é totalmente compatível com RFC.
Um exemplo de não conformidade é uma solicitação POST
enviada sem um cabeçalho Content-Length ou Transfer-Encoding. Um exemplo disso é usar curl -X POST https://example-front-door.domain.com
. Essa solicitação não atende aos requisitos definidos em RFC 7230. O Azure Front Door a bloquearia com uma resposta HTTP 411. Essas solicitações não são registradas em log.
Esse comportamento é separado da funcionalidade do WAF (firewall do aplicativo Web) do Azure Front Door. Atualmente, não há como desabilitar esse comportamento. Todas as solicitações HTTP devem atender aos requisitos, mesmo se a funcionalidade WAF não estiver em uso.
Etapas para solucionar problemas
- Verifique se as solicitações estão em conformidade com os requisitos definidos nos RFCs necessários.
- Anote qualquer corpo de mensagem HTML retornado em resposta à solicitação. Um corpo de mensagem geralmente explica exatamente como a solicitação não está em conformidade.
A minha origem está configurada como um endereço de IP.
Sintoma
A origem está configurada como um endereço IP. A origem é íntegra, mas está rejeitando as solicitações do Azure Front Door.
Causa
O Azure Front Door utiliza o nome do host de origem como o cabeçalho SNI durante o handshake do SSL. Como a origem está configurada como um endereço IP, a falha pode ser causada por um dos seguintes motivos:
- Se a verificação de nome do certificado estiver desabilitada, é possível que a causa do problema esteja na lógica do certificado de origem. Essa lógica pode estar rejeitando qualquer solicitação que não tenha um cabeçalho de host válido que corresponda ao certificado.
Etapas para solucionar problemas
Altere a origem de um endereço IP para um FQDN para o qual seja emitido um certificado válido que corresponda ao certificado de origem.
Próximas etapas
- Saiba como criar um Front Door.
- Saiba como criar um Front Door Standard/Premium.