小編給大家分享一下Nginx中502錯誤怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、鳳岡網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為鳳岡等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
詳解Nginx 502錯誤解決辦法
1.配置錯誤
因為nginx找不到php-fpm了,所以報錯,一般是fastcgi_pass后面的路徑配置錯誤了,后面可以是socket或者是ip:port
2.資源耗盡
lnmp架構(gòu)在處理php時,nginx直接調(diào)取后端的php-fpm服務(wù),如果nginx的請求量偏高,我們又沒有給php-fpm配置足夠的子進程,那么php-fpm就會資源耗盡,一旦資源耗盡nginx找不到php-fpm就會出現(xiàn)502錯誤,
解決方案 去調(diào)整php-fpm.conf中的pm.max_children數(shù)值,使其增加,但是也不能無限增加,畢竟資源有限,一般4G內(nèi)存機器如果跑php-fpm和nginx,不跑MySQL可以設(shè)置為150,8G為300以此類推
3.除了上面的兩種錯誤還有其他的原因,很少有,我們可以借助nginx的錯誤日志來進行排查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ù)木托校部梢愿某蒬ebug顯示的信息最全面,但是很容易撐爆我們的磁盤。
首先我們需要讓瀏覽器進行訪問 修改nginx的配置文件
[root@wqslinux ~]# vim/usr/local/nginx/conf/vhosts/111.conf server { listen 80; server_name www.111.com; //域名地址 index index.html index.htm index.php; root /data/www/; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/www.sock; //修改sock #fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name; } }
檢查語法是否正常
[root@wqslinux ~]#/usr/local/nginx/sbin/nginx -t
重新加載配置文件
[root@wqslinux ~]# /usr/local/nginx/sbin/nginx-s reload [root@wqslinux ~]# /etc/init.d/nginx reload
檢查nginx是那個用戶跑的
[root@wqslinux ~]# ps aux |grep nginx
編輯php-fpm文件 我們要在這個php-fpm文件里面設(shè)置nginx的用戶主,跟組這樣才不會顯示502
[root@wqslinux ~]# vim/usr/local/php/etc/php-fpm.conf [global] pid = /usr/local/php/var/run/php-fpm.pid error_log =/usr/local/php/var/log/php-fpm.log [www] listen = /tmp/www.sock user = php-fpm group = php-fpm listen.owner = nobody //定義屬主 listen.group = nobody //定義屬組 pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024
配置完之后重啟php-fpm
[root@wqslinux ~]# /etc/init.d/php-fpm restart
ps: 再補充一個,是近期很多同學(xué)遇到的問題 這種情況下,使用的是socket,版本高于5.4(含5.4) 默認(rèn)監(jiān)聽的socket文件權(quán)限是所有者只讀,屬組和其他用戶沒有任何權(quán)限。所以,nginx的啟動用戶(咱們配置的是nobody)就沒有辦法去讀這個socket文件,最終導(dǎo)致502,這個問題可以在nginx的錯誤日志中發(fā)現(xiàn)。解決辦法很簡單,上面給出的配置文件中就有避免這個問題的配置。
listen.owner = nobody //定義屬主 listen.group = nobody //定義屬組
這兩個配置就是定義socket的屬主和屬組是誰。除了這個還有一種方法
listen.mode = 777
這樣nobody也可以有讀取權(quán)限了。
以上是“Nginx中502錯誤怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁名稱:Nginx中502錯誤怎么辦
文章URL:http://jinyejixie.com/article6/gggiog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、網(wǎng)站維護、網(wǎng)站設(shè)計公司、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)