詳解Nginx 502錯(cuò)誤解決辦法
詳解Nginx 502錯(cuò)誤解決辦法
1.配置錯(cuò)誤
因?yàn)閚ginx找不到php-fpm了,所以報(bào)錯(cuò),一般是fastcgi_pass后面的路徑配置錯(cuò)誤了,后面可以是socket或者是ip:port
2.資源耗盡
lnmp架構(gòu)在處理php時(shí),nginx直接調(diào)取后端的php-fpm服務(wù),如果nginx的請(qǐng)求量偏高,我們又沒(méi)有給php-fpm配置足夠的子進(jìn)程,那么php-fpm就會(huì)資源耗盡,一旦資源耗盡nginx找不到php-fpm就會(huì)出現(xiàn)502錯(cuò)誤,
解決方案 去調(diào)整php-fpm.conf中的pm.max_children數(shù)值,使其增加,但是也不能無(wú)限增加,畢竟資源有限,一般4G內(nèi)存機(jī)器如果跑php-fpm和nginx,不跑mysql可以設(shè)置為150,8G為300以此類推
3.除了上面的兩種錯(cuò)誤還有其他的原因,很少有,我們可以借助nginx的錯(cuò)誤日志來(lái)進(jìn)行排查vim /usr/local/nginx/logs/nginx_error.log 我們也可以給日志定義級(jí)別vim/usr/local/nginx/conf/nginx.conf 找到error_log,默認(rèn)是crit最嚴(yán)謹(jǐn)?shù)木托?,也可以改成debug顯示的信息最全面,但是很容易撐爆我們的磁盤。
首先我們需要讓瀏覽器進(jìn)行訪問(wè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; } }
檢查語(yǔ)法是否正常
[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是那個(gè)用戶跑的
[root@wqslinux ~]# ps aux |grep nginx
編輯php-fpm文件 我們要在這個(gè)php-fpm文件里面設(shè)置nginx的用戶主,跟組這樣才不會(huì)顯示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ǔ)充一個(gè),是近期很多同學(xué)遇到的問(wèn)題 這種情況下,使用的是socket,版本高于5.4(含5.4) 默認(rèn)監(jiān)聽(tīng)的socket文件權(quán)限是所有者只讀,屬組和其他用戶沒(méi)有任何權(quán)限。所以,nginx的啟動(dòng)用戶(咱們配置的是nobody)就沒(méi)有辦法去讀這個(gè)socket文件,最終導(dǎo)致502,這個(gè)問(wèn)題可以在nginx的錯(cuò)誤日志中發(fā)現(xiàn)。解決辦法很簡(jiǎn)單,上面給出的配置文件中就有避免這個(gè)問(wèn)題的配置。
listen.owner = nobody //定義屬主 listen.group = nobody //定義屬組
這兩個(gè)配置就是定義socket的屬主和屬組是誰(shuí)。除了這個(gè)還有一種方法
listen.mode = 777
這樣nobody也可以有讀取權(quán)限了。
以上就是詳解Nginx 502錯(cuò)誤解決辦法,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案
- 詳解php+nginx 服務(wù)發(fā)生500 502錯(cuò)誤排查思路
- 深入分析nginx+php-fpm服務(wù)HTTP狀態(tài)碼502
- 詳解linux中 Nginx 常見(jiàn)502錯(cuò)誤問(wèn)題解決辦法
- PHP腳本監(jiān)控Nginx 502錯(cuò)誤并自動(dòng)重啟php-fpm
- Nginx 502 Bad Gateway錯(cuò)誤常見(jiàn)的4種原因和解決方法
- 將PHP從5.3.28升級(jí)到5.3.29時(shí)Nginx出現(xiàn)502錯(cuò)誤
- nginx服務(wù)器異常502 bad gateway原因排查
相關(guān)文章
Nginx實(shí)現(xiàn)負(fù)載均衡的配置步驟
Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,它以其穩(wěn)定性、豐富的功能集、低系統(tǒng)資源消耗和簡(jiǎn)單的配置而廣受歡迎,在大型網(wǎng)站和分布式系統(tǒng)中,Nginx常被用作負(fù)載均衡器,本文給大家介紹了Nginx負(fù)載均衡的配置步驟,需要的朋友可以參考下2024-06-06Nginx + php 搭建 超性能 WEB 服務(wù)器
Nginx ("engine x") 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。2010-03-03使用Nginx?+?Keepalived?實(shí)現(xiàn)高可用?Web?負(fù)載均衡筆記(虛擬機(jī))
這篇文章主要介紹了使用Nginx?+?Keepalived?實(shí)現(xiàn)高可用?Web?負(fù)載均衡筆記,需要的朋友可以參考下2023-08-08記一次nginx配置不當(dāng)引發(fā)的499與failover 機(jī)制失效問(wèn)題
近期在非高峰期也存在499超過(guò)告警閾值的偶發(fā)情況,多的時(shí)候一天幾次,少的時(shí)候則幾天一次,持續(xù)一般也就數(shù)分鐘,經(jīng)過(guò)和小伙伴的共同探究,最后發(fā)現(xiàn)之前對(duì)于499是客戶端主動(dòng)斷開(kāi)因而和服務(wù)端關(guān)系不大的想當(dāng)然認(rèn)知是錯(cuò)誤的,這里記錄一下2023-05-05簡(jiǎn)介Nginx服務(wù)器的Websockets配置方法
這篇文章主要介紹了簡(jiǎn)介Nginx服務(wù)器的Websockets配置方法,是使用Nginx服務(wù)器的網(wǎng)管的必備知識(shí)XD~需要的朋友可以參考下2015-06-06Nginx結(jié)合keepalived實(shí)現(xiàn)雙機(jī)熱備方案
Nginx難免遇見(jiàn)故障,可以使用使用keepalived來(lái)實(shí)現(xiàn)Nginx的高可用,本文主要介紹了Nginx結(jié)合keepalived實(shí)現(xiàn)雙機(jī)熱備方案,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05