Detalles y soluciones del error 502 Bad Gateway

1. 什么是 502 Bad Gateway 报错

502 Puerta de enlace defectuosa 是一种 HTTP 状态码,表示服务器作为网关或代理时,试图访问下一个服务器,但该服务器返回了非法的响应。简单来说,502 是一种错误类型代码,表示“错误的网关".

图片[1]-502 Bad Gateway 错误详解及解决方法-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

2. 产生 502 错误的原因

502 错误通常由以下几个原因引起:

第一个原因:DNS 缓存

如果你在未开启 VPN 的情况下访问了某些受限网站(如 Facebook),会在本地留下缓存,导致访问失败。这种情况下可以尝试在 DOS 窗口运行 ipconfig /flushdns 命令来刷新 DNS 缓存。

第二个原因:浏览器代理设置

检查浏览器是否开启了代理设置,确认关闭代理。

第三个原因:DNS 劫持

即使使用国外的 DNS,也可能会被劫持。有些设备开 VPN 可以访问,有些设备却不能。这种情况下可以切换到另外的 DNS 服务器(如 Google DNS 或 OpenDNS)。

图片[2]-502 Bad Gateway 错误详解及解决方法-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

3. 502 错误的 HTTP 循环

502 错误发生在客户端(如 Web 浏览器)与 Web 服务器之间的通信过程中,具体如下:

  1. 获取网站 IP 地址:通过 DNS 将域名转换为 IP 地址。
  2. 打开 IP 套接字连接到该 IP 地址。
  3. 通过套接字写入 HTTP 数据流。
  4. 从 Web 服务器收到 HTTP 响应数据流,其中包含状态码。

当客户端在最后一步收到状态码 502 时,就会显示“502 Bad Gateway”错误.

4. 固定 502 错误的方法

通用解决方法

  1. 刷新网页:按 CTRL+F5 强制刷新网页,这会重新从服务器获取数据,而不是从本地缓存读取。
  2. Borrar la caché del navegador:清除浏览器的缓存文件,然后重新访问网页。
图片[3]-502 Bad Gateway 错误详解及解决方法-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

具体解决方案

客户端问题

  1. 检查 ISP 问题:如果所有网站都出现 502 错误,可能是你的 ISP 设备故障或过载。
  2. 检查内部网络问题:如果只有部分网站出现 502 错误,可能是这些网站的设备故障或超载,联系网站管理员解决。

Problemas del servidor

  1. 查看 Nginx 日志:检查 Nginx 日志文件(/var/log/nginx)中是否有错误信息,如 upstream sent too big header while reading response header from upstream。可能是缓冲区设置过小。
  2. 增加缓冲区大小::
http {
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
}
http {
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
}
http { fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; }

3.代理缓冲区设置::

server {
listen 80;
server_name *.example.com;
location / {
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
    listen 80;
    server_name *.example.com;

    location / {
        proxy_buffer_size 64k;
        proxy_buffers 32 32k;
        proxy_busy_buffers_size 128k;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
server { listen 80; server_name *.example.com; location / { proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

4.增加 PHP-FPM 进程数::

; php-fpm.conf
pm.max_children = 512
pm.max_requests = 600
; php-fpm.conf
pm.max_children = 512
pm.max_requests = 600
; php-fpm.conf pm.max_children = 512 pm.max_requests = 600

5.增加 PHP 执行时间::

; php.ini
max_execution_time = 300
; php.ini
max_execution_time = 300
; php.ini max_execution_time = 300

6.增加 Nginx 超时时间::

http {
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
http {
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
}
http { fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; }

5. Nginx 502 Bad Gateway 错误的原因及解决方法

Nginx 502 错误的原因多种多样,通常是由于后端服务器的问题。以下是一些常见原因及解决方法:

FastCGI 缓冲区设置过小

在 Nginx 日志中发现 upstream sent too big header 错误,可以通过增加缓冲区大小解决:

http {
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
}
http {
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
}
http { fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; }

代理缓冲区设置过小

使用反向代理时,header 过大可能导致 502 错误:

server {
listen 80;
server_name *.example.com;
location / {
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
    listen 80;
    server_name *.example.com;

    location / {
        proxy_buffer_size 64k;
        proxy_buffers 32 32k;
        proxy_busy_buffers_size 128k;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
server { listen 80; server_name *.example.com; location / { proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

PHP-FPM 进程数过少

modificaciones php-fpm.conf 文件增加进程数:

pm.max_children = 512
pm.max_requests = 600
pm.max_children = 512
pm.max_requests = 600
pm.max_children = 512 pm.max_requests = 600

PHP 执行超时

modificaciones php.ini 文件增加执行时间:

max_execution_time = 300
max_execution_time = 300
max_execution_time = 300

Nginx 等待时间超时

增加 Nginx 配置中的超时时间:

http {
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
http {
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
}
http { fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; }

其他解决方法

  • 检查 PHP-FPM 进程数是否够用:
netstat -anpo | grep "php-cgi" | wc -l
netstat -anpo | grep "php-cgi" | wc -l
netstat -anpo | grep "php-cgi" | wc -l

sonda request_terminate_timeout Entorno:

; php-fpm.conf
request_terminate_timeout = 0
; php-fpm.conf
request_terminate_timeout = 0
; php-fpm.conf request_terminate_timeout = 0

通过上述方法,可以有效解决大部分 502 Bad Gateway 错误问题。希望这篇文章能帮助你更好地理解和解决 502 错误,提高网站的稳定性和用户体验。

图片[4]-502 Bad Gateway 错误详解及解决方法-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

Contacte con nosotros
¿No puede leer el artículo? ¡Póngase en contacto con nosotros para obtener una respuesta gratuita! Ayuda gratuita para sitios personales y de pequeñas empresas
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) Correo electrónico: info@361sale.com
Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
© Declaración de reproducción
Este artículo fue escrito por Harry
EL FIN
Si le gusta, apóyela.
felicitaciones0 compartir (alegrías, beneficios, privilegios, etc.) con los demás
comentarios compra de sofás

Por favor, inicie sesión para enviar un comentario

    Sin comentarios