¿Cómo soluciono los errores 504 en CloudFront?

4 minutos de lectura
0

Utilizo una distribución de Amazon CloudFront para ofrecer contenido. Sin embargo, los lectores reciben un error 504 cuando intentan acceder al contenido a través de un navegador web. ¿Cómo puedo resolver estos errores?

Descripción corta

CloudFront devuelve dos tipos de errores 504:

  • Los errores 504: “Gateway Time-out” (Tiempo de espera de puerta de enlace agotado) se producen cuando el origen devuelve el error y, a continuación, se transfiere a través de CloudFront al lector.
  • Los errores 504: “The request could not be satisfied” (No se pudo satisfacer la solicitud) se producen cuando el origen no respondió a CloudFront en el plazo asignado y, por lo tanto, la solicitud expiró.

Según el error que reciba, consulte la sección de resolución correspondiente.

Resolución

Error 504: “Gateway Time-out” (Tiempo de espera de puerta de enlace agotado)

Compruebe que estén abiertos los puertos correctos en el grupo de seguridad.

Asegúrese de que el servidor de origen permita el tráfico entrante de CloudFront, normalmente en el puerto 443 u 80.

Si su origen usa Elastic Load Balancing, revise los grupos de seguridad de ELB. Asegúrese de que los grupos de seguridad permitan el tráfico entrante de CloudFront.

Verifique que el firewall del servidor de origen permita las conexiones desde CloudFront

Según el sistema operativo, confirme que el firewall permite el tráfico para los puertos 443 y 80.

Si usa Redhat Linux View, compruebe que las reglas del firewall coincidan con la siguiente configuración.

Reglas del firewall:

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

Agregar reglas de forma permanente:

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

Si usa Ubuntu Linux, compruebe que las reglas del firewall coincidan con la siguiente configuración.

Reglas de firewall de Ubuntu Linux View:

$ sudo ufw status verbose

Agregar reglas de forma permanente:

$ sudo ufw allow 80
$ sudo ufw allow 443

Si usa el firewall de Windows en un servidor de Windows, consulte Agregar o editar regla de firewall en la documentación de Microsoft.

Asegúrese de que el servidor personalizado sea accesible a través de Internet

Si CloudFront no puede acceder a su origen a través de Internet, CloudFront devolverá un error 504. Para comprobar que el tráfico de Internet se puede conectar a su origen, confirme que las reglas HTTP y HTTPS coinciden con la siguiente configuración.

Para el tráfico HTTPS:

nc -zv OriginDomainName/IP_Address 443
telnet OriginDomainName/IP_Address 443

Para el tráfico HTTP:

nc -zv OriginDomainName 80
telnet OriginDomainName 80

Error 504: “The request could not be satisfied” (No se pudo satisfacer la solicitud)

Mida la latencia de carga alta y típica de su aplicación web

Utilice el siguiente comando para medir la capacidad de respuesta de su aplicación 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

Nota: Para https://www.example.com/yourobject, (https://www.ejemplo.com/suobjeto) especifique la URL de la aplicación web que está probando.

La salida es similar a la siguiente:

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

Según la ubicación de la solicitud, resuelva los problemas del paso que muestra una latencia alta.

Agregue recursos o ajuste servidores y bases de datos

Asegúrese de que el servidor tenga suficiente CPU, memoria y espacio en disco para gestionar las solicitudes de los espectadores.

Configure conexiones persistentes en su servidor backend. Estas conexiones ayudan a la latencia cuando se deben restablecer las conexiones para solicitudes posteriores.

Ajuste el valor de tiempo de espera de CloudFront

Si los pasos de solución de problemas anteriores no resolvieron los errores HTTP 504, actualice el tiempo especificado en su distribución para el tiempo de espera de respuesta del origen.


Información relacionada

Código de estado HTTP 504 (Gateway Timeout) (Tiempo de espera de puerta de enlace agotado)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años