Nginx 502 Bad Gateway的原因及解決方法
Nginx 502 Bad Gateway 錯誤的原因及解決方法
多數(shù)是后端問題也就是PHP的問題, 簡單的情況可以刷新(不是一般的刷新哦,Ctrl + F5 強(qiáng)制刷新)解決。在php服務(wù)當(dāng)中,有兩個參數(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í)行超時,修改/usr/local/php/etc/php.ini 將max_execution_time 為300;
2、FastCGI進(jìn)程是否已經(jīng)啟動
ps aux | grep php
查看是否啟動了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í)行時間過長
PHP程序執(zhí)行時間超過了Nginx等待時間,可以適當(dāng)增加nginx.conf配置文件中FastCGI的timeout時間,根據(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è)置過小
首先查找nginx日志文件,目錄/var/log/nginx,在日志中發(fā)現(xiàn)了如下錯誤:
[error] 15421#0: *16 upstream sent too big header while reading response header from upstream意思是nginx緩沖區(qū)bug造成,網(wǎng)站頁面占用緩沖區(qū)可能過大。增加緩沖區(qū)徹底解決了Nginx 502 Bad Gateway,方法如下:
http {
...
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
...
}請根據(jù)服務(wù)器已經(jīng)網(wǎng)站的情況自行增大上述兩個配置項(xiàng)。
7、代理緩沖區(qū)設(shè)置過?。ㄊ褂昧薾ginx反向代理的情況)
如果header過大,超出了默認(rèn)的1k,就會引發(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è)置過少
在安裝好使用過程中出現(xiàn)502問題,一般是因?yàn)槟J(rèn)php-cgi進(jìn)程是5個,可能因?yàn)閜hpcgi進(jìn)程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children的值適當(dāng)增加。也有可能是max_requests的值不夠用。需要說明的是這連個配置項(xiàng)占用內(nèi)存很大,請根據(jù)服務(wù)器配置進(jìn)行設(shè)置。否則可能起到反效果。
9、其它原因
如果您上網(wǎng)時在您嘗試訪問的所有網(wǎng)站上都看這個問題,有兩種可能
①你的ISP重大設(shè)備故障/過載
②有問題的內(nèi)部互聯(lián)網(wǎng)連接如您的防火墻無法正常運(yùn)作。
在種情況下,只有您的ISP可以幫助您。在第二種情況下,你需要解決什么,那是阻止你進(jìn)入互聯(lián)網(wǎng)。
如果您只有在部分嘗試訪問的網(wǎng)站中出現(xiàn)此問題,那很可能是一個問題,即這些網(wǎng)站之一,其設(shè)備故障或超載。聯(lián)系你網(wǎng)站的管理員。
到此這篇關(guān)于Nginx 502 Bad Gateway的原因及解決方法的文章就介紹到這了,更多相關(guān)Nginx 502 Bad Gateway內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在CentOS?7上使用Nginx將www重定向到非www的完整步驟
本文介紹了如何在CentOS7上使用Nginx進(jìn)行域名重定向配置,以及設(shè)置相應(yīng)的DNS記錄,重定向不僅有助于提高網(wǎng)站的搜索引擎排名,還能確保用戶無論通過www還是非www域名訪問,都能獲得一致的網(wǎng)站體驗(yàn),需要的朋友可以參考下2024-11-11
Nginx隱藏index.php和Pathinfo模式配置例子
這篇文章主要介紹了Nginx隱藏index.php和Pathinfo模式配置例子,需要的朋友可以參考下2014-04-04
利用Nginx實(shí)現(xiàn)一個IP部署多個網(wǎng)站
文章主要介紹了如何在一個服務(wù)器/一個IP地址上部署多個網(wǎng)站虛擬主機(jī)的方法,主要包括基于域名、端口和IP地址的區(qū)分方式,并詳細(xì)描述了Nginx的虛擬主機(jī)配置結(jié)構(gòu)和匹配優(yōu)先,此外,文章還提供了完整的多站點(diǎn)部署示例、限制方案以及管理命令速查,需要的朋友可以參考下2026-05-05
nginx帶寬限制?limit_rate?limit_rate_after指令
這篇文章主要為大家介紹了nginx帶寬限制?limit_rate?limit_rate_after指令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
nginx利用lua語言實(shí)現(xiàn)軟waf的示例代碼
這篇文章主要介紹了nginx利用lua語言實(shí)現(xiàn)軟waf,文中通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03
lnmp環(huán)境中如何為nginx開啟pathinfo
這篇文章主要介紹了lnmp環(huán)境中如何為nginx開啟pathinfo的方法,操作很簡單,需要的朋友可以參考下2015-01-01

