欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在 Nginx 当地实现请求转发时遇到 502 Bad Gateway 错误的解决方案

最编程 2024-02-10 17:42:30
...

本地开发时,使用Nginx作为本地代理转发后端请求来解决跨域问题时,间歇性出现以下502 Bad Gateway: image.png

最初以为是后端接口响应出错,后端排查后发现没问题。

因为报错信息上Nginx的版本信息与我本机的版本一样——nginx/1.21.3,且我使用的是Nginx代理转发的方式,因此,从Nginx上开始排查。

首先,添加Nginx错误日志

在Nginx配置中添加error-log配置,将错误信息记录下来,配置如下:


http {
    ...
    error_log  /var/logs/nginx-error.log error;
    ...
}

重启Nginx:sudo nginx -s reload

查看错误

当请求出错时,可以在/var/logs/nginx-error.log中查看到接口对应的错误信息:

2021/12/24 14:11:00 [error] 34049#0: *351 upstream sent too big header while reading response header from upstream, client: 127.0.0.1, server: wxp.crm, request: "POST /login/auth.rjson HTTP/1.1", upstream: "xx.xx.xx.xxx:80/login/auth.…", host: "wxp.com", referrer: "wxp.com/"

上述报错信息的意思,简单的说就是从服务器端接收到的响应头太大,超过了限制——默认情况下是1KB

解决方法

既然是使用Nginx作为代理服务器,所以需要对proxy_module模块进行相应的配置

主要设置以下三项:

proxy_buffer_size 64k;
proxy_buffers   32 32k;
proxy_busy_buffers_size 128k;

proxy_buffer_size

image.png

proxy_buffers

image.png

proxy_busy_buffers_size

image.png