詳解Nginx 502錯誤解決辦法
詳解Nginx 502錯誤解決辦法
1.配置錯誤
因?yàn)閚ginx找不到php-fpm了,所以報(bào)錯,一般是fastcgi_pass后面的路徑配置錯誤了,后面可以是socket或者是ip:port
2.資源耗盡
lnmp架構(gòu)在處理php時,nginx直接調(diào)取后端的php-fpm服務(wù),如果nginx的請求量偏高,我們又沒有給php-fpm配置足夠的子進(jìn)程,那么php-fpm就會資源耗盡,一旦資源耗盡nginx找不到php-fpm就會出現(xiàn)502錯誤,
解決方案 去調(diào)整php-fpm.conf中的pm.max_children數(shù)值,使其增加,但是也不能無限增加,畢竟資源有限,一般4G內(nèi)存機(jī)器如果跑php-fpm和nginx,不跑mysql可以設(shè)置為150,8G為300以此類推
3.除了上面的兩種錯誤還有其他的原因,很少有,我們可以借助nginx的錯誤日志來進(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顯示的信息最全面,但是很容易撐爆我們的磁盤。
首先我們需要讓瀏覽器進(jìn)行訪問 修改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: 再補(bǔ)充一個,是近期很多同學(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錯誤解決辦法,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
解決Nginx無法啟動 -10013: An attempt was
這篇文章主要給大家介紹了解決用nginx -t 發(fā)成Nginx無法啟動報(bào)錯10013: An attempt was made to access a socket in a way forbidden by its access permissions的問題,需要的朋友可以參考下2023-11-11
Nginx中反向代理+負(fù)載均衡+服務(wù)器宕機(jī)解決辦法詳解
這篇文章主要介紹了Nginx中反向代理+負(fù)載均衡+服務(wù)器宕機(jī)解決辦法詳解,反向代理保證系統(tǒng)安全,不暴露服務(wù)器IP,利用nginx服務(wù)器,利用內(nèi)網(wǎng)ip進(jìn)行訪問,避免出現(xiàn)攻擊服務(wù)器的情況,需要的朋友可以參考下2024-01-01
nginx配置同一域名同一端口下部署多個vue項(xiàng)目的實(shí)現(xiàn)
本地開發(fā)好了多個前端微信網(wǎng)頁項(xiàng)目,想部署上線,本文就來介紹一下nginx配置同一域名同一端口下部署多個vue項(xiàng)目的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Nginx設(shè)置日志打印post請求參數(shù)的方法
這篇文章主要介紹了Nginx設(shè)置日志打印post請求參數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
一篇文章快速掌握Nginx部署前端項(xiàng)目(Nginx安裝配置及部署都非常詳細(xì)!)
這篇文章主要給大家介紹了關(guān)于如何通過一篇文章快速掌握Nginx部署前端項(xiàng)目的相關(guān)資料,文中從Nginx安裝配置及部署都非常詳細(xì)哦,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-01-01
Nginx中accept鎖的機(jī)制與實(shí)現(xiàn)詳解
這篇文章主要給大家介紹了關(guān)于Nginx中accept鎖的機(jī)制與實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Nginx可視化管理軟件(Nginx Proxy Manager)的使用
Nginx Proxy Manager是一款開源的Nginx可視化管理界面,本文就來介紹一下Nginx Proxy Manager的使用,感興趣的可以了解一下2024-03-03

