nginx的502問題
2018-12-20 18:07:51
15918
1.配置錯(cuò)誤
因?yàn)閚ginx找不到php-fpm了或者socket文件權(quán)限不對,所以報(bào)錯(cuò),一般是fastcgi_pass后面的路徑配置不當(dāng),后面可以是socket或者是ip:port,從php5.4版本之后如果使用socket方式,默認(rèn)權(quán)限給的比較低,所以需要把監(jiān)聽權(quán)限改為777,對應(yīng)配置為 listen.mode=0777
2.資源耗盡
lnmp架構(gòu)在處理php時(shí),nginx直接調(diào)取后端的php-fpm服務(wù),如果nginx的請求量偏高,我們又沒有給php-fpm配置足夠的子進(jìn)程,那么php-fpm就會(huì)資源耗盡,一旦資源耗盡nginx找不到php-fpm就會(huì)出現(xiàn)502錯(cuò)誤
解決方案:
去調(diào)整php-fpm.conf中的pm.max_children數(shù)值,使其增加,但是也不能無限增加,畢竟資源有限,一般4G內(nèi)存機(jī)器如果跑php-fpm和nginx,不跑mysql可以設(shè)置為150,8G為300以此類推!
3.除了上面的兩種錯(cuò)誤還有其他的原因很少有,我們可以借助nginx的錯(cuò)誤日志來進(jìn)行排查
vim /usr/local/nginx/logs/nginx_error.log 我們也可以給日志定義級別vim/usr/local/nginx/conf/nginx.conf 找到error_log,默認(rèn)是crit最嚴(yán)謹(jǐn)?shù)木托?,也可以改成debug顯示的信息最全面,但是很容易撐爆我們的磁盤。