解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯誤(zt)

火星人 @ 2014-03-03 , reply:0


解決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的做法毫無意義

還是會有的
《解決方案》

這個是不可行的




[火星人 via ] 解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯誤(zt)已經有260次圍觀

http://www.coctec.com/docs/service/show-post-1922.html