解决nginx: upstream sent too big header while reading response header from upstream错误

今天采集了一些东西,准备批量导入库,有好几千条,结果点提交就一直显示502 gateway timeout,第一反应就是nginx死机了,然后刷新一下发现网站可以访问,nginx一切正常,最还以为我的脚本出了问题,但是想一下又觉得不可能502是nginx发出的,说明还没有走到php请求的地方去,就已经有问题了。

本来不想麻烦的,最后还是登上服务器看了一眼nginx错误日志。

结果真的发现了问题。以下是nginx错误日志记录。

[error] 32120#0: *432343 upstream sent too big header while reading response header from upstream, client: 118.xxx.xxx.xxx, server: www.xxx.com, request: "GET

请求头太长了,这就好办了,肯定不去改脚本了,直接修改nginx配置文件。

可以有两个地方修改:

第一个就是修改nginx配置文件的http模块配置

第二个就是修改server模块配置

我这里为了省事就直接修改http代码块了,很简单加两行代码:

fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;

加上这两行,重启nginx(./sbin/nginx -s reload)就搞定了。


Tags linux nginx

留言(0)

评论