¿Cómo reparar el error 502 Bad Gateway NGINX? (7 Métodos)

Publicado: 2023-04-20

Nginx es un servidor web de código abierto muy conocido por su rendimiento, escalabilidad y flexibilidad. Sin embargo, al igual que otros servidores web, Nginx puede enfrentar errores que dificultan su capacidad para entregar contenido a los clientes. Uno de esos errores es el error 502 Bad Gateway Nginx.

Encontrar errores puede ser bastante frustrante y confuso, especialmente si no eres técnicamente competente. Es posible que encuentre varios errores prominentes similares, como la pantalla blanca de la muerte y el error al establecer la conexión a la base de datos. Pero el error 502 bad gateway nginx es muy popular.

Puede haber múltiples razones posibles para que ocurra este error y, por lo tanto, diferentes formas de solucionarlo. En esta publicación, le diremos qué significa realmente 502 bad gateway Nginx, sus posibles causas y cuál es el mejor método de solución de problemas que debe seguir.

¡Comencemos!


Tabla de contenido
¿Qué es un error 502 Bad Gateway Nginx?
¿Qué causa un error 502 Bad Gateway Nginx?
¿Cómo arreglar un 502 Bad Gateway Nginx?
Resumen
Preguntas frecuentes

Leer: 15 métodos para reparar el error 502 Bad Gateway en su sitio web


¿Qué es un error 502 Bad Gateway Nginx?

Un error 502 Bad Gateway Nginx es un código de estado HTTP que representa un servidor que actúa como puerta de enlace o servidor proxy que no recibe una respuesta válida de un servidor ascendente. En el caso de Nginx, se produce un error de puerta de enlace incorrecta 502 cuando el servidor no puede establecer una conexión con el servidor ascendente o cuando el servidor ascendente devuelve una respuesta no válida.

Este error se ve comúnmente cuando se intenta acceder a un sitio web o una aplicación web alojada detrás de un proxy inverso o balanceador de carga.

Hay múltiples variaciones de 502 Bad gateway Nginx Error que puede encontrar en diferentes sitios. Por ejemplo:

  • Error HTTP 502: puerta de enlace incorrecta
  • Error de proxy 502
  • 502 Puerta de enlace no válida
  • 502 Servicio temporalmente sobrecargado
  • HTTP 502
  • 502 Puerta de enlace incorrecta nginx
  • Error 502

¿Qué causa un error 502 Bad Gateway Nginx?

Puede haber varias razones por las que puede ocurrir un error 502 Bad Gateway en Nginx, pero a continuación se enumeran algunas de las más comunes:

Servidor sobrecargado

Cuando un servidor back-end recibe demasiadas solicitudes, puede sobrecargarse y no responder dentro del período de tiempo de espera. Esto provoca un error 502 ya que el servidor ascendente no puede cumplir con la solicitud del cliente. El dimensionamiento adecuado del servidor, la asignación de recursos, el equilibrio de carga y las estrategias de escalado pueden evitar la sobrecarga del servidor.

Problemas de conectividad

  • Los problemas de conectividad pueden causar un error 502 Bad Gateway en Nginx cuando hay un problema con la conexión de red entre el servidor proxy inverso y el servidor backend.
  • Esto puede suceder debido a la congestión de la red, configuraciones de red mal configuradas o fallas de hardware.
  • Cuando el servidor proxy inverso intenta reenviar una solicitud al servidor backend pero no puede establecer una conexión, devuelve un error 502 al cliente.
  • El error ocurre porque el servidor proxy inverso actúa como intermediario entre el cliente y el servidor backend y no puede conectarse al servidor backend para cumplir con la solicitud del cliente.
  • La solución de problemas de configuración de la red, la verificación de las reglas del firewall y la supervisión del tráfico de la red pueden ayudar a solucionar el problema.

Problemas de DNS

  • Los problemas de DNS pueden causar un error 502 Bad Gateway en Nginx cuando falla la resolución de DNS para el servidor backend.
  • Esto puede suceder debido a configuraciones de DNS incorrectas, fallas del servidor DNS o problemas de almacenamiento en caché de DNS.
  • Cuando un cliente envía una solicitud al servidor proxy inverso, el servidor proxy inverso necesita resolver el nombre de dominio del servidor backend en una dirección IP.
  • Si la resolución de DNS falla, el servidor proxy inverso no puede reenviar la solicitud al servidor backend, lo que genera un error 502 que se devuelve al cliente.

Leer: ¿Qué es DNS?


Restricciones de cortafuegos

  • Las restricciones de firewall pueden causar un error 502 Bad Gateway en Nginx cuando un firewall bloquea la conexión entre el servidor proxy inverso y el servidor backend.
  • Esto puede suceder cuando el firewall está configurado para restringir el tráfico hacia y desde puertos o direcciones IP específicas.
  • Cuando el servidor proxy inverso intenta conectarse al servidor back-end, pero el cortafuegos bloquea la conexión, devuelve un error 502 al cliente.
  • Esto ocurre porque el servidor proxy inverso actúa como intermediario entre el cliente y el servidor backend y no puede establecer una conexión con el servidor backend para cumplir con la solicitud del cliente.
  • Para solucionar los problemas relacionados con el firewall que causan un error 502, es posible que deba ajustar las reglas del firewall para permitir que el tráfico fluya entre el proxy inverso y los servidores back-end.

Errores de software

  • Puede ocurrir un error 502 Bad Gateway debido a un error de software o una configuración incorrecta en el servidor proxy inverso o el servidor back-end.
  • Este error puede ocurrir debido a errores de codificación o configuraciones incorrectas de los módulos o aplicaciones del servidor.
  • Si el software o la configuración de cualquiera de los servidores contiene un error, es posible que no pueda manejar las solicitudes o no responda dentro del período de tiempo de espera, lo que da como resultado que se devuelva un error 502 al cliente.
  • Para solucionar los problemas relacionados con el software que causan un error 502, es posible que deba examinar los registros de los servidores backend y proxy inverso para identificar cualquier error o mensaje de advertencia.

PHP-FMP está tardando demasiado en responder

  • PHP-FPM (FastCGI Process Manager) puede causar un error 502 Bad Gateway en Nginx cuando no responde dentro del período de tiempo de espera o encuentra un error crítico.
  • Este error puede ocurrir debido a recursos insuficientes, mala configuración o un error en el código PHP.
  • PHP-FPM es una forma popular de ejecutar aplicaciones PHP en Nginx, donde Nginx envía la solicitud a PHP-FPM y procesa el código PHP y devuelve el resultado a Nginx, que luego envía la respuesta al cliente.
  • Para solucionar problemas relacionados con PHP-FPM, es posible que deba ajustar la configuración de PHP-FPM para aumentar la cantidad de procesos o subprocesos o ajustar la configuración de tiempo de espera.
  • También es posible que deba examinar el código PHP para identificar y corregir cualquier error o problema de rendimiento.
  • Además, monitorear los registros del servidor y los recursos del sistema puede ayudar a identificar patrones o tendencias que podrían indicar un problema mayor con PHP-FPM.

Leer: ¿Cómo reparar el error de tiempo de espera de la puerta de enlace HTTP 504?


¿Cómo arreglar un 502 Bad Gateway Nginx?

Aquí hay algunas de las mejores soluciones que puede seguir para corregir un error 502 Bad Gateway Nginx:

  • Comprobar el estado de Nginx
  • Comprobar el estado del servidor backend
  • Compruebe la configuración de DNS
  • Compruebe la configuración del cortafuegos
  • Aumente el tamaño del búfer
  • Reiniciar servidor Nginx
  • Comprobar el estado de PHP-FPM

Comprobar el estado de Nginx

Lo primero que debe hacer es verificar si Nginx se está ejecutando y respondiendo a las solicitudes o no. Para hacer eso, ejecute el siguiente comando dado a continuación:

Si Nginx se está ejecutando, obtendrá un mensaje de salida similar a este:

nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-10-11 10:25:41 UTC; 1 days ago
Docs: https://httpd.nginx.org/docs/2.4/

Si Nginx no se está ejecutando, recibirá un mensaje de salida como este:

nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-10-11 10:25:41 UTC; 25s ago
Docs: https://httpd.nginx.org/docs/2.4/

Ahora, en caso de que Nginx no se esté ejecutando, debe iniciarlo nuevamente usando el siguiente comando,

systemctl start nginx

Comprobar el estado del servidor backend

  • Inicie sesión en el servidor proxy inverso que aloja Nginx.
  • Abra una ventana de terminal y ejecute el siguiente comando:

curl -I http://backend-server-ip-address/

• Reemplace “backend-server-ip-address” con la dirección IP de su servidor backend.

• Verifique el código de estado HTTP en la salida del comando. Si el servidor back-end se ejecuta correctamente, debería ver un código de estado de 200 OK.

• Si recibe un código de estado que no sea 200, indica que puede haber un problema con el servidor back-end. Puede investigar más a fondo el problema examinando los registros del servidor back-end para identificar cualquier error o mensaje de advertencia.

Compruebe la configuración de DNS

Si la resolución de DNS falla, el servidor proxy inverso no puede reenviar la solicitud al servidor back-end, lo que genera un error 502 Bad Gateway que se devuelve al cliente. Por lo tanto, es importante verificar que la configuración de DNS para el servidor backend sea correcta.

Para verificar la configuración de DNS, puede realizar los siguientes pasos:

  • Inicie sesión en el servidor proxy inverso que aloja Nginx.
  • Abra una ventana de terminal y ejecute el siguiente comando:

nslookup backend-server-domain-name

Reemplace "backend-server-domain-name" con el nombre de dominio de su servidor backend.

• Verifique la salida del comando para verificar que se devuelva la dirección IP correcta para el servidor back-end.

  • Si el resultado del comando indica que la resolución de DNS falló, puede haber un problema con la configuración de DNS. Puede investigar más a fondo el problema comprobando la configuración de DNS para el nombre de dominio del servidor backend o poniéndose en contacto con su proveedor de DNS para obtener ayuda.

Compruebe la configuración del cortafuegos

Se recomienda comprobar los registros del cortafuegos en busca de un bloqueo inusual. A veces, los cortafuegos también impiden o bloquean sitios. Para superar este problema, debe deshabilitar temporalmente sus firewalls y verificar si el problema persiste o se resolvió.

Aumente el tamaño del búfer

Aumentar el tamaño del búfer permite que Nginx almacene más datos de la respuesta del servidor, lo que garantiza que la respuesta esté completa y sin errores. Para aumentar el tamaño del búfer, debe editar el archivo de configuración de Nginx y agregar las siguientes directivas.

  • proxy_buffer_size : establece el tamaño de cada búfer. El valor predeterminado suele ser 4K. Puede aumentarlo a un valor más alto según los requisitos de su servidor. Por ejemplo, para establecer el tamaño del búfer en 16 K, agregue la siguiente línea a su archivo de configuración:

proxy_buffer_size 16k;

  • proxy_buffers : establece el número de búferes para asignar. El valor predeterminado suele ser 8. Puede aumentarlo a un valor mayor según los requisitos de su servidor. Por ejemplo, para establecer la cantidad de búferes en 32 y el tamaño del búfer en 16 KB, agregue la siguiente línea a su archivo de configuración:

proxy_buffers 32 16k;


Nota: es importante tener en cuenta que aumentar el tamaño del búfer y la cantidad de búferes aumentará el uso de la memoria en el servidor. Por lo tanto, debe experimentar con diferentes tamaños de búfer y números de búfer para encontrar la configuración óptima para su servidor y aplicación.


  • Después de realizar cambios en el archivo de configuración de Nginx, guarde el archivo y reinicie Nginx para que los cambios surtan efecto. Puede hacer esto ejecutando el siguiente comando:

sudo service nginx restart

Reiniciar servidor Nginx

En algunos casos, simplemente reiniciar el servidor Nginx puede resolver el error 502 bad gateway Nginx. Para hacer esto,

Debe ejecutar un comando en su terminal o shell. El comando exacto depende del sistema operativo y la distribución que esté utilizando, pero aquí hay algunos ejemplos:

  • Ubuntu y Debian:

sudo service nginx restart

  • CentOS, Fedora y RHEL:

sudo systemctl restart nginx

  • mac OS :

sudo nginx -s reload

Estos comandos reiniciarán correctamente el servidor Nginx, lo que significa que esperará a que finalicen las conexiones activas antes de apagarse y comenzar de nuevo.

Comprobar el estado de PHP-FPM

A veces, el error 502 Bad Gateway Nginx también puede ser activado por PHP-FPM que no se está ejecutando. Por lo tanto, es necesario comprobar el estado de PHP-FPM para asegurarse de que funciona correctamente.

Para verificar el estado de ejecución, puede usar el siguiente comando,

sudo service php-fpm status

Si PHP-FPM se está ejecutando, debería ver un mensaje que indica que está activo.

Sin embargo, en caso de que PHP-FPM no se esté ejecutando, puede intentar reiniciarlo con el siguiente comando:

sudo service php-fpm restart

Este comando reiniciará el servicio PHP-FPM, lo que puede ayudar a resolver cualquier problema que pueda estar provocando un error 502 bad gateway Nginx.


Resumen

Un error 502 Bad Gateway Nginx es un error común que pueden encontrar los usuarios de Nginx. Por lo general, es causado por problemas de conectividad, sobrecarga del servidor, problemas de DNS, restricciones de firewall o errores de software.

Sin embargo, siguiendo los pasos descritos en este artículo, puede solucionar y resolver un error nginx de puerta de enlace incorrecta 502.

Si ninguno de los métodos anteriores le ha funcionado, desafortunadamente, considere buscar ayuda en los foros de Nginx o en un consultor de Nginx altamente experimentado y calificado.

Si tiene algún consejo o sugerencia con respecto al error 502 Bad Gateway Nginx que podemos haber pasado por alto en esta publicación o si desea compartir su experiencia con el mismo, háganoslo saber en la sección de comentarios a continuación. Damos la bienvenida a su entrada.


Leer: ¿Cómo solucionar el error del servidor interno HTTP 500 en WordPress?


Preguntas frecuentes

¿Cómo soluciono 502 Bad gateway nginx?

Puede reparar el error nginx 502 Bad Gateway siguiendo los métodos a continuación:
1. Comprobar el estado de Nginx
2. Comprobar el estado del servidor backend
3. Verifique la configuración de DNS
4. Compruebe la configuración del cortafuegos
5. Aumente el tamaño del búfer
6. Reinicie el servidor Nginx
7. Verifique las estadísticas de PHP-FPM

¿Cómo verifico mi estado de nginx?

Para comprobar el estado de nginx, ejecute el siguiente comando que se indica a continuación:
systemctl estado nginx
La salida mostrará si nginx se está ejecutando o no.

¿Qué es un error de puerta de enlace 502 Bad?

Un error 502 Bad Gateway Nginx es un código de estado HTTP que representa un servidor que actúa como puerta de enlace o servidor proxy que no recibe una respuesta válida de un servidor ascendente.