1. ¿Qué es un error 502 Bad Gateway?
502 Puerta de enlace defectuosa es un código de estado HTTP que indica que el servidor, al actuar como pasarela o proxy, intentó acceder al siguiente servidor, pero éste devolvió una respuesta ilegal. En pocas palabras, 502 es un código de tipo error que indica "Puerta de enlace incorrecta".
2. Causas de los errores 502
Los errores 502 suelen deberse a varios motivos:
Primera razón: caché DNS
Si no enciende el VPN En el caso de algunos sitios web restringidos (por ejemplo, Facebook), puede dejar una caché local y hacer que falle el acceso. En este caso, puedes intentar configurar la caché en la opción Ventana DOSestar en movimiento ipconfig /flushdns
para vaciar la caché DNS.
Segunda razón: Configuración del proxy del navegador
Compruebe si la configuración del proxy está activada en su navegador y asegúrese de que está desactivada.
Tercera razón: secuestro de DNS
Incluso si utiliza un DNS extranjero, puede ser secuestrado. Se puede acceder a algunos dispositivos con la VPN activada, pero a otros no. En este caso, puedes cambiar a otro servidor DNS (por ejemplo, Google DNS u OpenDNS).
3. 502 Bucle HTTP incorrecto
El error 502 se produce durante la comunicación entre un cliente (como un navegador Web) y un servidor Web de la siguiente manera:
- Obtener la dirección IP de un sitio web: Traduce un nombre de dominio en una dirección IP mediante DNS.
- Abre un socket IP para conectarte a esa dirección IP.
- Escribe flujos HTTP a través de sockets.
- Recibe un flujo de respuesta HTTP del servidor web que contiene códigos de estado.
Cuando el cliente recibe el código de estado 502 en el último paso, muestra "Error "502 Bad Gateway.
4. Método de corrección de errores 502
Soluciones genéricas
- Actualizar la página: Prensa
CTRL+F5
Forzar la actualización de la página, que volverá a obtener los datos del servidor en lugar de leerlos de la caché local. - Borrar la caché del navegadorBorre la memoria caché de su navegador y vuelva a visitar la página.
Soluciones específicas
Problemas de los clientes
- Compruebe si hay problemas con el ISP: Si el error 502 se produce en todos los sitios, puede ser que el equipo de su ISP esté fallando o sobrecargado.
- Comprobación de problemas en la red interna: Si el error 502 se produce sólo en algunos sitios, puede deberse a un fallo del equipo o a una sobrecarga en esos sitios, póngase en contacto con el webmaster para solucionar el problema.
Problemas del servidor
- Visualización de los registros de NginxCompruebe el archivo de registro de Nginx (/var/log/nginx) en busca de mensajes de error como los siguientes
el flujo ascendente envió un encabezado demasiado grande al leer el encabezado de respuesta del flujo ascendente
. Es posible que el búfer sea demasiado pequeño. - Aumentar el tamaño del búfer::
http {
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k.
}
3.Configuración del búfer proxy::
servidor {
listen 80; nombre_servidor *.ejemplo.com; nombre_servidor
nombre_servidor *.ejemplo.com;
servidor { listen 80; nombre_servidor *.ejemplo.com; ubicación / {
proxy_buffer_size 64k; proxy_buffers 32 32k; ubicación / {
proxy_buffers 32 32k; proxy_busy_buffers_size 128k;
proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; proxy_set_header
proxy_set_header Host $host.
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
4.Aumentar el número de procesos PHP-FPM::
; php-fpm.conf
pm.max_children = 512
pm.max_requests = 600
5.Aumentar el tiempo de ejecución de PHP::
; php.ini
max_tiempo_ejecucion = 300
6.Aumentar el tiempo de espera de Nginx::
http {
fastcgi_connect_timeout 300;
fastcgi_connect_timeout 300; fastcgi_send_timeout 300;
fastcgi_read_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300.
}
5. Nginx 502 Bad Gateway Error Causas y Soluciones
Nginx 502 errores pueden ser causados por una variedad de razones, por lo general debido a problemas con el servidor back-end. Aquí están algunas causas y soluciones comunes:
Búfer FastCGI demasiado pequeño
Encontrado en los logs de Nginx upstream envió una cabecera demasiado grande
que puede resolverse aumentando el tamaño del búfer:
http {
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k.
}
Búfer proxy demasiado pequeño
Cuando se utiliza un proxy inverso, una cabecera demasiado grande puede provocar un error 502:
servidor {
listen 80; nombre_servidor *.ejemplo.com; nombre_servidor
nombre_servidor *.ejemplo.com;
servidor { listen 80; nombre_servidor *.ejemplo.com; ubicación / {
proxy_buffer_size 64k; proxy_buffers 32 32k; ubicación / {
proxy_buffers 32 32k; proxy_busy_buffers_size 128k;
proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; proxy_set_header
proxy_set_header Host $host.
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
El número de procesos PHP-FPM es demasiado bajo
modificaciones php-fpm.conf
El documento aumenta el número de procesos:
pm.max_hijos = 512
pm.max_peticiones = 600
Tiempo de espera de ejecución de PHP
modificaciones php.ini
Documentación para aumentar el tiempo de ejecución:
tiempo_de_ejecución_máximo = 300
Tiempo de espera de Nginx
Aumente el tiempo de espera en la configuración de Nginx:
http {
fastcgi_connect_timeout 300;
fastcgi_connect_timeout 300; fastcgi_send_timeout 300;
fastcgi_read_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300.
}
Otras soluciones
- Comprueba si hay suficientes procesos PHP-FPM:
netstat -anpo | grep "php-cgi" | wc -l
sonda request_terminate_timeout
Entorno:
; php-fpm.conf
request_terminate_timeout = 0
La mayoría de los problemas de error 502 Bad Gateway pueden resolverse eficazmente con los métodos anteriores. Espero que este artículo pueda ayudarle a comprender y resolver mejor los errores 502, y a mejorar la estabilidad y la experiencia de usuario de su sitio web.