Nginx 502 Bad Gateway的原因及解決方法
Nginx 502 Bad Gateway 錯(cuò)誤的原因及解決方法
多數(shù)是后端問(wèn)題也就是PHP的問(wèn)題, 簡(jiǎn)單的情況可以刷新(不是一般的刷新哦,Ctrl + F5 強(qiáng)制刷新)解決。在php服務(wù)當(dāng)中,有兩個(gè)參數(shù)非常的重要:max_requestst和max_children,具體的原因必須要查看日志才可以弄明白!
1、檢查PHP基礎(chǔ)設(shè)置
修改/www/server/php/80/etc/php-fpm.conf request_terminate_timeout = 100 ,把100改成5;
php執(zhí)行超時(shí),修改/usr/local/php/etc/php.ini 將max_execution_time 為300;
2、FastCGI進(jìn)程是否已經(jīng)啟動(dòng)
ps aux | grep php
查看是否啟動(dòng)了php-fpm
服務(wù);
3、FastCGI worker進(jìn)程數(shù)是否不夠
運(yùn)行l(wèi)inux命令:
netstat -anpo | grep “php-cgi” | wc -l
判斷是否接近FastCGI進(jìn)程,接近配置文件中設(shè)置的數(shù)值,表明worker進(jìn)程數(shù)設(shè)置太少;
4、FastCGI執(zhí)行時(shí)間過(guò)長(zhǎng)
PHP程序執(zhí)行時(shí)間超過(guò)了Nginx等待時(shí)間,可以適當(dāng)增加nginx.conf
配置文件中FastCGI
的timeout
時(shí)間,根據(jù)實(shí)際情況調(diào)高以下參數(shù)值:
fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
5、FastCGI Buffer不夠
nginx和apache一樣,有前端緩沖限制,可以調(diào)整緩沖參數(shù)
fastcgi_buffer_size 32k; fastcgi_buffers 8 32k;
6、FastCGI 緩沖區(qū)設(shè)置過(guò)小
首先查找nginx日志文件,目錄/var/log/nginx
,在日志中發(fā)現(xiàn)了如下錯(cuò)誤:
[error] 15421#0: *16 upstream sent too big header while reading response header from upstream意思是nginx緩沖區(qū)bug造成,網(wǎng)站頁(yè)面占用緩沖區(qū)可能過(guò)大。增加緩沖區(qū)徹底解決了Nginx 502 Bad Gateway,方法如下:
http { ... fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; ... }
請(qǐng)根據(jù)服務(wù)器已經(jīng)網(wǎng)站的情況自行增大上述兩個(gè)配置項(xiàng)。
7、代理緩沖區(qū)設(shè)置過(guò)小(使用了nginx反向代理的情況)
如果header過(guò)大,超出了默認(rèn)的1k,就會(huì)引發(fā)upstream sent too big header
server { listen 80; server_name *.test.com; location / { ###############添加這3行 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; ###############添加這3行 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ............ }
8、默認(rèn)php-cgi的進(jìn)程數(shù)設(shè)置過(guò)少
在安裝好使用過(guò)程中出現(xiàn)502問(wèn)題,一般是因?yàn)槟J(rèn)php-cgi進(jìn)程是5個(gè),可能因?yàn)閜hpcgi進(jìn)程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children的值適當(dāng)增加。也有可能是max_requests的值不夠用。需要說(shuō)明的是這連個(gè)配置項(xiàng)占用內(nèi)存很大,請(qǐng)根據(jù)服務(wù)器配置進(jìn)行設(shè)置。否則可能起到反效果。
9、其它原因
如果您上網(wǎng)時(shí)在您嘗試訪問(wèn)的所有網(wǎng)站上都看這個(gè)問(wèn)題,有兩種可能
①你的ISP重大設(shè)備故障/過(guò)載
②有問(wèn)題的內(nèi)部互聯(lián)網(wǎng)連接如您的防火墻無(wú)法正常運(yùn)作。
在種情況下,只有您的ISP可以幫助您。在第二種情況下,你需要解決什么,那是阻止你進(jìn)入互聯(lián)網(wǎng)。
如果您只有在部分嘗試訪問(wèn)的網(wǎng)站中出現(xiàn)此問(wèn)題,那很可能是一個(gè)問(wèn)題,即這些網(wǎng)站之一,其設(shè)備故障或超載。聯(lián)系你網(wǎng)站的管理員。
到此這篇關(guān)于Nginx 502 Bad Gateway的原因及解決方法的文章就介紹到這了,更多相關(guān)Nginx 502 Bad Gateway內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx并發(fā)數(shù)限制limit_conn基本語(yǔ)法
這篇文章主要為大家介紹了nginx并發(fā)數(shù)限制limit_conn基本語(yǔ)法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04如何實(shí)現(xiàn)Nginx同一端口同時(shí)支持http與https協(xié)議
最近有一個(gè)需求,需要讓一個(gè)端口的http服務(wù)支持https訪問(wèn),本文就來(lái)介紹一下如何實(shí)現(xiàn)Nginx同一端口同時(shí)支持http與https協(xié)議,感興趣的可以了解一下2023-11-11Nginx設(shè)置Access-Control-Allow-Origin多域名跨域?qū)崿F(xiàn)
本文主要介紹了Nginx設(shè)置Access-Control-Allow-Origin多域名跨域?qū)崿F(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11Nginx開啟一個(gè)參數(shù)就能讓你的WEB性能提升3倍的方法
這篇文章主要介紹了Nginx開啟一個(gè)參數(shù)就能讓你的WEB性能提升3倍的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03Nginx+Windows搭建域名訪問(wèn)環(huán)境的操作方法
這篇文章主要介紹了Nginx搭建域名訪問(wèn)環(huán)境,包括nginx配置文件的相關(guān)介紹及對(duì)nginx配置文件的分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03OpenResty是什么,OpenResty和Nginx的區(qū)別?
Nginx作為一款輕量級(jí)、高性能的Web服務(wù)器,傳統(tǒng)局限性也很明顯:靜態(tài)配置、邏輯擴(kuò)展依賴C模塊開發(fā),使得它在需要?jiǎng)討B(tài)業(yè)務(wù)邏輯的場(chǎng)景中顯得捉襟見肘,<BR>而OpenResty的出現(xiàn),打破了這一僵局,它通過(guò)將Lua腳本深度集成到Nginx中,將“靜態(tài)代理服務(wù)器”升級(jí)為“動(dòng)態(tài)應(yīng)用平臺(tái)”2025-04-04linux(centos5.5)/windows下nginx開啟phpinfo模式功能的配置方法分享
某站點(diǎn)用到結(jié)合phpinfo功能的urlrewrite,在nginx中需要在nginx.conf文件中進(jìn)行配置才可支持phpinfo2013-02-02