欢迎访问BXFOR 科技控与搬砖工

多种方式解决Nginx 502 Bad Gateway错误

img
9月
01

Nginx 502 Bad Gateway 的错误已经把我逼疯了,遇到N次了,这次nginx缓冲区问题也算是解决了,特此备忘,省得以后再遇到。(再遇到也打不开网站也看不到,所以感觉没什么用)

一、fastcgi缓冲区设置过小
出现错误,首先要查找nginx的日志文件,目录为/var/log/nginx,在日志中发现了如下错误。

2013/01/17 13:33:47 [ error] 15421#0: *16 upstream sent too big header while reading response header from upstream

查阅了一下资料,大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。

网上查找了一下解决方法,在国外网站看到了一个增加缓冲区的方法,彻底解决了Nginx 502 Bad Gateway的问题。方法如下:

请根据服务器已经网站的情况自行增大上述两个配置项。

二、代理缓冲区设置过小
如果你使用的是nginx反向代理,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header (说白了就是nginx把外部请求给后端处理,后端返回的header太大,nginx处理不过来就会导致502。

三、默认php-cgi的进程数设置过少
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。也有可能是max_requests值不够用。需要说明的是这连个配置项占用内存很大,请根据服务器配置进行设置。否则可能起到反效果。

四、php执行超时
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

五、nginx等待时间超时
部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间

You must be logged in to post a comment.

我的推特

"还记得你何时加入 Twitter 吗?我知道!#我的Twitter周年纪念日 https://t.co/j3zOxI9Ypc"
"录BIM课+捡日语+温习Shell脚本,理想是这样的,现实是刷完碗啥都不想干了"
"世界上有三种鸟,一种是笨鸟先飞,一种是嫌累不飞,第三种鸟最讨厌,自己不飞,就在窝里下个蛋,要下一代使劲飞。"
"却下水晶帘,玲珑望秋月 https://t.co/PEk4FZ3Oy6"
"老婆:iG 夺冠了 我:你知道那是干什么的吗? 老婆:打篮球的吗? 我:那是打游戏的啦,虽然不知道是打什么的 老婆:差不多 https://t.co/8t9F00Fcze"
"爱心小贴纸 https://t.co/IfbcGiFRMQ"
"朴素的早餐,特别的温暖 https://t.co/tAYCNmuxea"

统计

  • 0
  • 123
  • 125,146
  • 110
  • 2018年9月17日
跳至工具栏