解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯誤(zt)
解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯誤(zt)
[文章作者:張宴 本文版本:v1.0 轉載請註明原文鏈接:http://blog.s135.com/read.php/361.htm]
昨日,迅雷的朋友問我,他們將迅雷在線(http://www.xunlei.com/)的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;
......
}
......
《解決方案》
單純增加 超時時間 如果在併發兩高的網站 對於伺服器性能來說無疑是增加考驗
《解決方案》
可以肯定的告訴你,這沒用!
運維群:168572651
歡迎各位新手加入,一起學習集群一起學習運維
《解決方案》
#######################修改nginx.conf配置文件:
fastcgi_pass unix:/tmp/php-cgi.sock;
改為:
fastcgi_pass 127.0.0.1:9000;
第二步,修改php-fpm.conf配置文件:
<value name="listen_address">/tmp/php-cgi.sock</value>
改為
<value name="listen_address">127.0.0.1:9000</value>
第三步,依次重啟Nginx和php-fpm
nginx 重啟:
/usr/local/nginx/sbin/nginx -t/usr/local/nginx/sbin/nginx -s reload
php-fpm重啟:
/usr/local/php/sbin/php-fpm restart
現在試試還有沒有502錯誤呢
《解決方案》
LS的做法毫無意義
還是會有的
《解決方案》
這個是不可行的