nginx的502問題

光銀努力吧發表於2017-10-17

1.配置錯誤

因為nginx找不到php-fpm了或者socket檔案許可權不對,所以報錯,一般是fastcgi_pass後面的路徑配置不當,後面可以是socket或者是ip:port,從php5.4版本之後如果使用socket方式,預設許可權給的比較低,所以需要把監聽許可權改為777,對應配置為 listen.mode=0777

2.資源耗盡

lnmp架構在處理php時,nginx直接調取後端的php-fpm服務,如果nginx的請求量偏高,我們又沒有給php-fpm配置足夠的子程式,那麼php-fpm就會資源耗盡,一旦資源耗盡nginx找不到php-fpm就會出現502錯誤

解決方案
去調整php-fpm.conf中的pm.max_children數值,使其增加,但是也不能無限增加,畢竟資源有限,一般4G記憶體機器如果跑php-fpm和nginx,不跑mysql可以設定為150,8G為300以此類推

3.其它錯誤

除了上面的兩種錯誤還有其他的原因很少有,我們可以藉助nginx的錯誤日誌來進行排查vim /usr/local/nginx/logs/nginx_error.log 我們也可以給日誌定義級別vim/usr/local/nginx/conf/nginx.conf 找到error_log,預設是crit最嚴謹的就行,也可以改成debug顯示的資訊最全面,但是很容易撐爆我們的磁碟。


相關文章