您所在的位置 : IT客 » 應用技術 » Web服務器

Nginx 502 Bad Gateway錯誤的終極解決方案:

Nginx 502 Bad Gateway錯誤的終極解決方案 徹底解決lnmp出現的502錯誤

-
  Nginx  502 Bad Gateway錯誤的終極解決方案:

隨心微博 之前服務器是手工安裝的,未發生過任何問題,後來使用Lnmp一鍵安裝包部署Nginx環境,卻發現經常出現 502 Bad Gateway 錯誤,比如在不停的刷新過程中,時不時就出現一次502錯誤;

經過本人摸索,終於發現了一個解決方法:

lnmp安裝後,Fastcgi 默認的監聽端口是這樣的:fastcgi_pass  unix:/tmp/php-cgi.sock;

而隨心微博之前沒發生502錯誤的配置文件是:fastcgi_pass  127.0.0.1:9000;

換成監聽9000端口後,再次狂刷新頁面,沒有出現;找一個外地朋友測試一下:刷新50+,沒有出現502。而之前我是基本上刷新了八九次就會出現一次502錯誤;

所以,確定應該就是fastcgi監聽端口的問題引起的;

具體步驟:

1.修改nginx.conf

nginx安裝目錄:/usr/local/nginx/conf/ ,打開nginx.conf,查找到:

fastcgi_pass  unix:/tmp/php-cgi.sock;

改爲:

fastcgi_pass  127.0.0.1:9000;

2.修改php-fpm.conf

php安裝目錄:,/usr/local/php/etc/,打開php-fpm.conf

查找到第26行:    

 <value name="listen_address">/tmp/php-cgi.sock</value>

改爲

      <value name="listen_address">127.0.0.1:9000</value>

3.依次重啓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

okay,完成操作,現在試試是否還存在502錯誤了吧,如果還存在,可能就是fastcgi進程數不夠,可適當根據自身服務器內存需要,修改cgi進程數目,在php-fpm.conf修改max_children最大數目,如我的服務器2G內存,修改爲  <value name="max_children">72</value>。

可能還會修改:

      <value name="request_terminate_timeout">9999s</value>

      <value name="request_slowlog_timeout">999s</value>

頂一下
(0)
踩一下
(1)

發表評論:

昵稱: *
內容:
驗證碼:
rss· 投稿· 加入收藏· 手機版