¿Cómo soluciono los errores 504 en CloudFront?
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)
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 3 años