Como soluciono problemas de erros 504 no CloudFront?

Data da última atualização: 02/06/2022

Estou usando uma distribuição do Amazon CloudFront para distribuir conteúdo. No entanto, os visualizadores recebem um erro 504 quando tentam acessar o conteúdo por meio de um navegador da web. Como posso resolver esses erros?

Breve descrição

O CloudFront retorna dois tipos de erros 504:

  • 504: Erros de “Gateway time-out” (Tempo limite do gateway) ocorrem quando o erro é retornado pela origem e, em seguida, passado pelo CloudFront para o visualizador.
  • 504: Os erros “The request could not be satisfied” (A solicitação não obteve nenhum resultado) ocorrem quando a origem não respondeu ao CloudFront no período de tempo alocado e, portanto, a solicitação expirou.

Com base no erro que você receber, consulte a seção de resolução relacionada.

Resolução

504: Erro “Gateway time-out” (Tempo limite do gateway)

Verifique se as portas corretas estão abertas no seu grupo de segurança.

Verifique se o servidor de origem permite tráfego de entrada do CloudFront, normalmente na porta 443 ou 80.

Se sua origem usa o Elastic Load Balancing, revise os grupos de segurança do ELB. Certifique-se de que os grupos de segurança permitam tráfego de entrada do CloudFront.

Verifique se o firewall do servidor de origem permite conexões do CloudFront

Dependendo do seu sistema operacional, confirme se o firewall permite tráfego para as portas 443 e 80.

Se você estiver usando o Redhat Linux View, verifique se suas regras de firewall correspondem às seguintes configurações.

Regras de firewall:

$ sudo firewall-cmd --permanent --zone=public --list-ports

Adicionar regras permanentemente:

$ sudo firewall-cmd --permanent --zone=public --add-port=80/tcp       
$ sudo firewall-cmd --permanent --zone=public --add-port=443/tcp

Se você estiver usando o Ubuntu Linux, verifique se suas regras de firewall correspondem às seguintes configurações.

Ubuntu Linux Exibir regras de firewall:

$ sudo ufw status verbose

Adicionar regras permanentemente:

$ sudo ufw allow 80
$ sudo ufw allow 443

Se você usa o Firewall do Windows em um servidor Windows, consulte Adicionar ou editar regra de firewall na documentação da Microsoft.

Certifique-se de que O seu servidor personalizado esteja acessível pela internet

Se o CloudFront não conseguir acessar sua origem pela internet, o CloudFront retornará um erro 504. Para verificar se o tráfego da internet pode se conectar à sua origem, confirme se as regras HTTP e HTTPS correspondem às seguintes configurações.

Para tráfego HTTPS:

nc -zv OriginDomainName/IP_Address 443
telnet OriginDomainName/IP_Address 443
Para tráfego HTTP:
nc -zv OriginDomainName 80
telnet OriginDomainName 80

Erro 504: “The request could not be satisfied” (A solicitação não obteve nenhum resultado)

Meça a latência de carga típica e alta do seu aplicativo web

Use o comando a seguir para medir a capacidade de resposta do seu aplicativo web:

curl -w "DNS Lookup Time: %{time_namelookup} \nConnect time: %{time_connect} \nTLS Setup: %{time_appconnect} \nRedirect Time: %{time_redirect} \nTime to first byte: %{time_starttransfer} \nTotal time: %{time_total} \n" -o /dev/null https://www.example.com/yourobject

Observação: para https://www.example.com/yourobject, insira a URL do aplicativo web que você está testando.

A saída terá a seguinte aparência:

DNS Lookup Time: 0.212319   
Connect time: 0.371254   
TLS Setup: 0.544175  
Redirect Time: 0.000000   
Time to first byte: 0.703863   
Total time: 0.703994

Dependendo do local da solicitação, solucione o problema da etapa que mostra alta latência.

Adicione recursos ou ajuste servidores e bancos de dados

Verifique se o servidor tem CPU, memória e espaço em disco suficientes para lidar com as solicitações do visualizador.

Configure conexões persistentes em seu servidor de back-end. Essas conexões ajudam na latência quando as conexões precisam ser restabelecidas para solicitações subsequentes.

Ajuste o valor do tempo limite do CloudFront

Se as etapas de solução de problemas anteriores não resolveram os erros HTTP 504, atualize o tempo especificado em sua distribuição para o tempo limite de resposta de origem.


Este artigo ajudou?


Você necessita de suporte técnico ou relacionado à cobrança?