[文章作者:张宴 本文版本:v1.0 最后修改:2008.07.30 转载请注明原文链接:http://blog.s135.com/read.php/361.htm]

  昨日,有朋友问我,他将Web服务器换成Nginx 0.6.31  + PHP 4.4.7(FastCGI)后,有时候访问会出现“502 Bad Gateway”错误,如何解决。

  我让按照以下两个步骤去解决,最后在第2步中将FastCGI的timeout时间增加为300,问题解决:

  PS:比较羡慕迅雷的Web服务器,16G内存。



  1、查看当前的PHP FastCGI进程数是否够用:
netstat -anpo | grep "php-cgi" | wc -l

  如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。



  2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:
......
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......

Tags: , , , ,
技术大类 » Web服务器 | 评论(17) | 引用(0) | 阅读(5841)
jacky
2008-7-30 09:02
不太理解:
netstat -an | grep "php-cgi" | wc -l

netstat -an 不是显示端口, grep php-cgi 能得到什么?
# netstat -an | grep "php-cgi" | wc -l
0
张宴 回复于 2008-7-30 09:25
不要意思,写错了,是:
netstat -anpo | grep "php-cgi" | wc -l
lhwmzy
2008-7-30 09:08
命令写错了吧
gusingchen
2008-7-30 09:18
1、502是php执行时间过长造成,有问题的话加大进程数也没用.  2、web  服务器没有必要这么大的内存吧。cpu消耗多些。
张宴 回复于 2008-7-30 09:27
php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。
wayne Email Homepage
2008-7-30 11:06
预先设置的FastCGI数,是不是就是php-fpm.conf里的max_children值
willko
2008-7-31 22:44
方便面没打开也会出现这个错误。。。
JulyClyde
2008-8-1 11:49
504 Gateway Timeout才需要增加等待时间吧?
502是Bad Gateway,是sock、端口没被监听造成的
ww
2008-8-1 20:06
老师有2个问题。。
1.按照你的方法配置,,但是修改php.in 的display_errors = on。。用phpinfo()看还是off的。。。已经重启并且没改错php.ini文件
2.请问下nginx怎么才能支持index.php/id/2这样的路径呢?
我发现只支持index.php?/id/2

谢谢
blankyao Email Homepage
2008-8-3 23:44
刚注册,我试下头像是否显示正常
Dewei Email
2008-8-10 17:07
large_client_header_buffers 4 32k;
请问上次我问的时候,你回答的这样的,要不要再加了?
张宴 回复于 2008-8-11 10:21
如果报的是400错误,就增大header_buffers值为32k(默认为4k)
large_client_header_buffers 4 32k;
wayne
2008-8-14 16:46
nginx里的错误日志是不是不记录 502错误的,我没有发现呀
dodoup
2008-8-15 17:19
10309 daemon    15   0 7570m 2.7g  812 S    0  0.6   0:02.63 nginx                                                                  
10310 daemon    15   0 7552m 2.7g  812 S    0  0.6   0:01.26 nginx                                                                  
10313 daemon    15   0 75464  25m  812 S    0  0.6   0:01.23 nginx                                                                  
10318 daemon    15   0 7543m 2.7g  812 S    0  0.6   0:01.31 nginx  

有谁遇到过这样的问题米?
wayne
2008-8-20 22:37
兄弟,帮我看一下,nginx的日志,出现好多400的错误,这样是什么原因呢?

220.255.7.194 - - [20/Aug/2008:22:38:30 +0800] "-" 400 0 "-" "-" -
60.190.0.78 - - [20/Aug/2008:22:38:31 +0800] "-" 400 0 "-" "-" -
220.202.4.12 - - [20/Aug/2008:22:38:31 +0800] "-" 400 0 "-" "-" -
220.202.4.12 - - [20/Aug/2008:22:38:31 +0800] "-" 400 0 "-" "-" -
58.220.236.250 - - [20/Aug/2008:22:38:33 +0800] "-" 400 0 "-" "-" -
117.40.118.93 - - [20/Aug/2008:22:38:33 +0800] "-" 400 0 "-" "-" -
222.242.65.94 - - [20/Aug/2008:22:38:34 +0800] "-" 400 0 "-" "-" -
58.220.236.250 - - [20/Aug/2008:22:38:34 +0800] "-" 400 0 "-" "-" -
219.152.214.89 - - [20/Aug/2008:22:38:34 +0800] "-" 400 0 "-" "-" -
58.33.12.209 - - [20/Aug/2008:22:38:35 +0800] "-" 400 0 "-" "-" -
60.50.171.133 - - [20/Aug/2008:22:38:36 +0800] "-" 400 0 "-" "-" -
jspshiwo
2008-8-27 23:15
我刚新安装的 ngnix 就提示 502 Bad Gateway 错误 请问为什么啊 ?

 我用 netstat -anpo | grep "php-cgi" | wc -l  查看你 显示 1
uddtm
2008-9-23 19:46
还是不行呀,我的/usr/local/webserver/php/bin/里边就没有php-cgi这个文件呀,我这样该怎样启动php-cgi进程

安装过程都正常,启动nginx后显示的也是502 Bad Gateway .
weiwei Email Homepage
2008-10-24 17:04
502/504错误,改那个不顶用,而且PHP-CGI经常大片小时,网站很卡,一会又好了,感觉
php跑PHP-CGI很不稳定,快的时候真的很快,但慢起来就是 502、504

http://bbs.woyool.com
hanliuyj
2008-10-31 17:39
我这里是这样的设置的,并发请求一多,还是出现502的错误哦
   fastcgi_connect_timeout 300;
   fastcgi_send_timeout 300;
   fastcgi_read_timeout 300;
amazergling
2008-11-28 13:09
我这边用跑在按张sir手顺配置的环境下,不知为何也很不稳定,即便是测试期间只有一两个节点的访问量也会莫名其妙的出现空白页,有时候多点几下又好了,再点又空白,急煞我也 :(

现在只好改回apache暂时将就着,但对于nginx的高负载能力很是垂涎三尺,希望尽早能够构建出稳定的nginx下的php环境,即便放弃fcgi也在所不惜......:-P
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]