懂視移動(dòng)端 視頻1 視頻21 視頻41 視頻61 視頻文章1 視頻文章21 視頻文章41 視頻文章61 推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37 推薦39 推薦41 推薦43 推薦45 推薦47 推薦49 關(guān)鍵詞1 關(guān)鍵詞101 關(guān)鍵詞201 關(guān)鍵詞301 關(guān)鍵詞401 關(guān)鍵詞501 關(guān)鍵詞601 關(guān)鍵詞701 關(guān)鍵詞801 關(guān)鍵詞901 關(guān)鍵詞1001 關(guān)鍵詞1101 關(guān)鍵詞1201 關(guān)鍵詞1301 關(guān)鍵詞1401 關(guān)鍵詞1501 關(guān)鍵詞1601 關(guān)鍵詞1701 關(guān)鍵詞1801 關(guān)鍵詞1901 視頻擴(kuò)展1 視頻擴(kuò)展6 視頻擴(kuò)展11 視頻擴(kuò)展16 文章1 文章201 文章401 文章601 文章801 文章1001 資訊1 資訊501 資訊1001 資訊1501 標(biāo)簽1 標(biāo)簽501 標(biāo)簽1001 關(guān)鍵詞1 關(guān)鍵詞501 關(guān)鍵詞1001 關(guān)鍵詞1501
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 手機(jī) - 正文

nginx 502 bad gateway 錯(cuò)誤解決辦法是什么

來源:懂視網(wǎng) 責(zé)編:小OO 時(shí)間:2020-04-08 19:00:57
導(dǎo)讀nginx 502 bad gateway 錯(cuò)誤解決辦法是什么,一些運(yùn)行在Nginx上的網(wǎng)站有時(shí)候會(huì)出現(xiàn)“502BadGateway”錯(cuò)誤,有些時(shí)候甚至頻繁的出現(xiàn)。以下是小編搜集整理的一些Nginx502錯(cuò)誤的排查方法,供參考:Nginx502錯(cuò)誤的原因比較多,是因?yàn)樵诖砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。在訪問服務(wù)網(wǎng)站的時(shí)候經(jīng)常遇到502的情況,怎么去跟蹤檢查該問題,解決該問題呢。材料/工具nginx方法當(dāng)訪問服務(wù)網(wǎng)站的

一些運(yùn)行在Nginx上的網(wǎng)站有時(shí)候會(huì)出現(xiàn)“502 Bad Gateway”錯(cuò)誤,有些時(shí)候甚至頻繁的出現(xiàn)。以下是小編搜集整理的一些Nginx 502錯(cuò)誤的排查方法,供參考: Nginx 502錯(cuò)誤的原因比較多,是因?yàn)樵诖砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。

在訪問服務(wù)網(wǎng)站的時(shí)候經(jīng)常遇到502的情況,怎么去跟蹤檢查該問題,解決該問題呢。

材料/工具

nginx

方法

當(dāng)訪問服務(wù)網(wǎng)站的時(shí)候出現(xiàn)下述情況。

遇到502問題,可以優(yōu)先考慮按照以下兩個(gè)步驟去解決。 1、查看當(dāng)前的PHP FastCGI進(jìn)程數(shù)是否夠用: 復(fù)制代碼 代碼如下: netstat -anpo | grep "php-cgi" | wc -l 如果實(shí)際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“FastCGI進(jìn)程

查看nginx日志,檢查錯(cuò)誤原因。

解決辦法 遇到502問題,可以優(yōu)先考慮按照以下兩個(gè)步驟去解決。 1、查看當(dāng)前的PHP FastCGI進(jìn)程數(shù)是否夠用: 復(fù)制代碼 代碼如下: netstat -anpo | grep "php-cgi" | wc -l 如果實(shí)際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“Fa

查看nginx日志存放路徑。源碼安裝的nginx配置文件一般在/usr/local/nginx/conf/nginx.conf/

打開網(wǎng)站有時(shí)出現(xiàn)502 Bad Gateway可以這樣解決: 1、502 Bad Gateway錯(cuò)誤的原因是網(wǎng)站到客戶端的鏈路網(wǎng)關(guān)路由異常。 2、要解決502 Bad Gateway錯(cuò)誤服務(wù)端服務(wù)器問題,要先找到nginx配置的路徑。然后找到nginx所在的error日志文件來查看具體原因

如果不是源碼安裝的一般在/etc/nginx/nginx.conf下面。

1、首先判斷是不是php fastcgi進(jìn)程數(shù)是否夠用。netstat -anpo | grep php-cgi | wc -l如果實(shí)際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“FastCGI進(jìn)程數(shù)”不夠用,需要增大。 但是要注意計(jì)算你的內(nèi)存是否足夠支撐更多的進(jìn)程數(shù)

日志放在/var/log/nginx下面。

一、NGINX 502錯(cuò)誤排查 NGINX 502 Bad Gateway錯(cuò)誤是FastCGI有問題,造成NGINX 502錯(cuò)誤的可能性比較多。這個(gè)我我服務(wù)器上面的配置 你可以看一下: 1.FastCGI進(jìn)程是否已經(jīng)啟動(dòng) 2.FastCGI worker進(jìn)程數(shù)是否不夠 運(yùn)行 netstat -anpo | grep “php-cg

然后查看nginx日志。

會(huì)有好多種情況出現(xiàn)502錯(cuò)誤,下面我們分情況來說一下。 一、fastcgi緩沖區(qū)設(shè)置過小出現(xiàn)錯(cuò)誤,首先要查找nginx的日志文件,目錄為/var/log/nginx,在日志中發(fā)現(xiàn)了如下錯(cuò)誤。 2013/01/17 13:33:47 [error] 15421#0: *16 upstream sent too big hea

#tail/var/log/nginx/access.log

會(huì)有好多種情況出現(xiàn)502錯(cuò)誤,下面我們分情況來說一下。 一、fastcgi緩沖區(qū)設(shè)置過小 出現(xiàn)錯(cuò)誤,首先要查找nginx的日志文件,目錄為/var/log/nginx,在日志中發(fā)現(xiàn)了如下錯(cuò)誤。 2013/01/17 13:33:47 [error] 15421#0: *16 upstream sent too big he

上圖中紅框內(nèi)就是要鏈接的實(shí)際服務(wù)器地址。我的日志中返回的是200,是沒有錯(cuò)誤的。如果當(dāng)服務(wù)器返回502時(shí)候,就需要檢查這個(gè)實(shí)際服務(wù)上的服務(wù)是否有問題了。

user nobody; worker_processes 2; error_loglogs/error.log; #error_loglogs/error.log notice; #error_loglogs/error.log info; pidlogs/nginx.pid; events { worker_connections1024; } includemime.types; default_typeapplication/octet-st

當(dāng)然不一定服務(wù)真正有問題了。有可能是通信協(xié)議出了問題。首先你要登錄實(shí)際服務(wù)器在本機(jī)curl訪問地址看看是否訪問成功

一些運(yùn)行在Nginx上的網(wǎng)站有時(shí)候會(huì)出現(xiàn)“502 Bad Gateway”錯(cuò)誤,有些時(shí)候甚至頻繁的出現(xiàn)。以下是小編搜集整理的一些Nginx 502錯(cuò)誤的排查方法,供參考: Nginx 502錯(cuò)誤的原因比較多,是因?yàn)樵诖砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。這些錯(cuò)誤一般都不

實(shí)際服務(wù)器訪問成功。然后查看nginx服務(wù)器和實(shí)際服務(wù)器之間通信是否出了問題。

Nginx 502錯(cuò)誤的原因比較多,大部分是因?yàn)樵诜聪虼砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。這些錯(cuò)誤一般都不是nginx本身的問題,一定要從后端找原因!但nginx把這些出錯(cuò)信息非常簡(jiǎn)單,著實(shí)讓nginx的用戶備受置疑,畢竟從字眼上理解,bad gateway?不

可以從nginx服務(wù)器ping實(shí)際服務(wù)器。

1)閃爍“|”字形光標(biāo)為對(duì)象插入光標(biāo)、“I”字形光標(biāo)為文本光標(biāo)。 2)回車(Enter)鍵:?jiǎn)萎a(chǎn)生一個(gè)換行符,起換行與分段的作用。 3)刪除(Delete)鍵:刪除插入光標(biāo)右邊的一個(gè)或選定的若干字符。 4)退格鍵(Back Space):刪除插入光標(biāo)左邊的一個(gè)

然后檢查nginx配置中監(jiān)控的服務(wù)器地址是否正確

發(fā)生原因 1、PHP FastCGI進(jìn)程數(shù)不夠用 當(dāng)網(wǎng)站并發(fā)訪問巨大時(shí),php fastcgi的進(jìn)程數(shù)不有一定的保障,因?yàn)閏gi是單線程多進(jìn)程工作的,也就是說cgi需要處理完一個(gè)頁面后再繼續(xù)下一個(gè)頁面。如果進(jìn)程數(shù)不夠,當(dāng)訪問巨大的時(shí)候,cgi按排隊(duì)處理之前的請(qǐng)

另一方面,當(dāng)服務(wù)壓力過大,線程并發(fā)過多的時(shí)候,服務(wù)無法給出正確的相應(yīng),就會(huì)出現(xiàn)這樣的錯(cuò)誤。

一些運(yùn)行在Nginx上的網(wǎng)站有時(shí)候會(huì)出現(xiàn)“502 Bad Gateway”錯(cuò)誤,有些時(shí)候甚至頻繁的出現(xiàn)。以下是小編搜集整理的一些Nginx 502錯(cuò)誤的排查方法,供參考: Nginx 502錯(cuò)誤的原因比較多,是因?yàn)樵诖砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。

這時(shí)候應(yīng)該做的就是nginx的優(yōu)化或者服務(wù)的性能優(yōu)化了。

nginx中經(jīng)常遇到以下問題: 引起原因如下: 1、nginx緩沖區(qū)的一個(gè)bug造成的,網(wǎng)站的頁面消耗占用緩沖區(qū)可能過大超出緩沖區(qū)大小 2、使用的是nginx反向代理,如果header過大,超出了默認(rèn)的1k,就會(huì)引發(fā)上述的upstream sent too big header (也就是

你可以通過netstat或者lsof查看當(dāng)前nginx的鏈接數(shù)。

factcgi_connect_timeout 300; factcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffers 4 64k ; 就可以了nginx.conf

截圖只是簡(jiǎn)單的列出兩項(xiàng)。

遇到502問題,可以優(yōu)先考慮按照以下兩個(gè)步驟去解決。 1、查看當(dāng)前的PHP FastCGI進(jìn)程數(shù)是否夠用: 復(fù)制代碼 代碼如下: netstat -anpo | grep "php-cgi" | wc -l 如果實(shí)際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“FastCGI進(jìn)程

nginx性能優(yōu)化是一項(xiàng)跟重要的工作,這里不能簡(jiǎn)單幾句話就可以總結(jié)出來。后期關(guān)注小編經(jīng)驗(yàn),介紹nginx性能優(yōu)化相關(guān)經(jīng)驗(yàn)。

下面是幾點(diǎn)嘗試: 1、Nginx的設(shè)置。 在Nginx指定的Vhost中添加,增大延遲時(shí)間。 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; 2、php-Fpm中的配置中。 首先,增加進(jìn)程數(shù)要根據(jù)Php單個(gè)進(jìn)程占用空間*總共要

擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。

nginx tomcat 502 bad gateway問題怎么解決

一些運(yùn)行在Nginx上的網(wǎng)站有時(shí)候會(huì)出現(xiàn)“502 Bad Gateway”錯(cuò)誤,有些時(shí)候甚至頻繁的出現(xiàn)。以下是小編搜集整理的一些Nginx 502錯(cuò)誤的排查方法,供參考:

Nginx 502錯(cuò)誤的原因比較多,是因?yàn)樵诖砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。這些錯(cuò)誤一般都不是nginx本身的問題,一定要從后端找原因!但nginx把這些出錯(cuò)都攬?jiān)谧约荷砩狭?,著?shí)讓nginx的推廣者備受置疑,畢竟從字眼上理解,bad gateway?不就是bad nginx嗎?讓不了解的人看到,會(huì)直接把責(zé)任推在nginx身上,希望nginx下一個(gè)版本會(huì)把出錯(cuò)提示寫稍微友好一些,至少不會(huì)是現(xiàn)在簡(jiǎn)單的一句 502 Bad Gateway,另外還不忘附上自己的大名。

Nginx 502的觸發(fā)條件

502錯(cuò)誤最通常的出現(xiàn)情況就是后端主機(jī)當(dāng)機(jī)。在upstream配置里有這么一項(xiàng)配置:proxy_next_upstream,這個(gè)配置指定了 nginx在從一個(gè)后端主機(jī)取數(shù)據(jù)遇到何種錯(cuò)誤時(shí)會(huì)轉(zhuǎn)到下一個(gè)后端主機(jī),里頭寫上的就是會(huì)出現(xiàn)502的所有情況拉,默認(rèn)是error timeout。error就是當(dāng)機(jī)、斷線之類的,timeout就是讀取堵塞超時(shí),比較容易理解。我一般是全寫上的:

proxy_next_upstream error timeout invalid_header http_500 http_503;  不過現(xiàn)在可能我要去掉http_500這一項(xiàng)了,http_500指定后端返回500錯(cuò)誤時(shí)會(huì)轉(zhuǎn)一個(gè)主機(jī),后端的jsp出錯(cuò)的話,本來會(huì)打印一堆 stacktrace的錯(cuò)誤信息,現(xiàn)在被502取代了。但公司的程序員可不這么認(rèn)為,他們認(rèn)定是nginx出現(xiàn)了錯(cuò)誤,我實(shí)在沒空跟他們解釋502的原理 了……

503錯(cuò)誤就可以保留,因?yàn)楹蠖送ǔJ莂pache resin,如果apache死機(jī)就是error,但resin死機(jī),僅僅是503,所以還是有必要保留的。

解決辦法

遇到502問題,可以優(yōu)先考慮按照以下兩個(gè)步驟去解決。

1、查看當(dāng)前的PHP FastCGI進(jìn)程數(shù)是否夠用:

復(fù)制代碼 代碼如下:

netstat -anpo | grep "php-cgi" | wc -l

如果實(shí)際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“FastCGI進(jìn)程數(shù)”不夠用,需要增大。

2、部分PHP程序的執(zhí)行時(shí)間超過了Nginx的等待時(shí)間,可以適當(dāng)增加nginx.conf配置文件中FastCGI的timeout時(shí)間,例如:

復(fù)制代碼 代碼如下:

http { fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; ...... } ......

php.ini中memory_limit設(shè)低了會(huì)出錯(cuò),修改了php.ini的memory_limit為64M,重啟nginx,發(fā)現(xiàn)好了,原來是PHP的內(nèi)存不足了。

如果這樣修改了還解決不了問題,可以參考下面這些方案:

一、max-children和max-requests

一臺(tái)服務(wù)器上運(yùn)行著nginx php(fpm) xcache,訪問量日均 300W pv左右。

最近經(jīng)常會(huì)出現(xiàn)這樣的情況:php頁面打開很慢,cpu使用率突然降至很低,系統(tǒng)負(fù)載e799bee5baa6e78988e69d8331333363366231突然升至很高,查看網(wǎng)卡的流量,也會(huì)發(fā)現(xiàn)突然降到了很低。這種情況只持續(xù)數(shù)秒鐘就恢復(fù)了。

檢查php-fpm的日志文件發(fā)現(xiàn)了一些線索。

復(fù)制代碼 代碼如下:

Sep 30 08:32:23.289973 [NOTICE] fpm_unix_init_main(), line 271: getrlimit(nofile): max:51200, cur:51200 Sep 30 08:32:23.290212 [NOTICE] fpm_sockets_init_main(), line 371: using inherited socket fd=10, “127.0.0.1:9000″ Sep 30 08:32:23.290342 [NOTICE] fpm_event_init_main(), line 109: libevent: using epoll Sep 30 08:32:23.296426 [NOTICE] fpm_init(), line 47: fpm is running, pid 30587 

在這幾句的前面,是1000多行的關(guān)閉children和開啟children的日志。

原來,php-fpm有一個(gè)參數(shù) max_requests,該參數(shù)指明了,每個(gè)children最多處理多少個(gè)請(qǐng)求后便會(huì)被關(guān)閉,默認(rèn)的設(shè)置是500。因?yàn)閜hp是把請(qǐng)求輪詢給每個(gè) children,在大流量下,每個(gè)childre到達(dá)max_requests所用的時(shí)間都差不多,這樣就造成所有的children基本上在同一時(shí)間 被關(guān)閉。

在這期間,nginx無法將php文件轉(zhuǎn)交給php-fpm處理,所以cpu會(huì)降至很低(不用處理php,更不用執(zhí)行sql),而負(fù)載會(huì)升至很高(關(guān)閉和開啟children、nginx等待php-fpm),網(wǎng)卡流量也降至很低(nginx無法生成數(shù)據(jù)傳輸給客戶端)

解決問題很簡(jiǎn)單,增加children的數(shù)量,并且將 max_requests 設(shè)置未 0 或者一個(gè)比較大的值:

打開 /usr/local/php/etc/php-fpm.conf調(diào)大以下兩個(gè)參數(shù)(根據(jù)服務(wù)器實(shí)際情況,過大也不行)

復(fù)制代碼 代碼如下:

<value>5120</value><value>600</value>  

然后重啟php-fpm。

二、增加緩沖區(qū)容量大小

將nginx的error log打開,發(fā)現(xiàn)“pstream sent too big header while reading response header from upstream”這樣的錯(cuò)誤提示。查閱了一下資料,大意是nginx緩沖區(qū)有一個(gè)bug造成的,我們網(wǎng)站的頁面消耗占用緩沖區(qū)可能過大。參考老外寫的修 改辦法增加了緩沖區(qū)容量大小設(shè)置,502問題徹底解決。后來系統(tǒng)管理員又對(duì)參數(shù)做了調(diào)整只保留了2個(gè)設(shè)置參數(shù):client head buffer,fastcgi buffer size。

三、request_terminate_timeout

如果主要是在一些post或者數(shù)據(jù)庫操作的時(shí)候出現(xiàn)502這種情況,而不是在靜態(tài)頁面操作中常見,那么可以查看一下php-fpm.conf設(shè)置中的一項(xiàng):

request_terminate_timeout

這個(gè)值是max_execution_time,就是fast-cgi的執(zhí)行腳本時(shí)間。

0s

0s為關(guān)閉,就是無限執(zhí)行下去。(當(dāng)時(shí)裝的時(shí)候沒仔細(xì)看就改了一個(gè)數(shù)字)問題解決了,執(zhí)行很長(zhǎng)時(shí)間也不會(huì)出錯(cuò)了。優(yōu)化fastcgi中,還可以改改這個(gè)值5s 看看效果。

php-cgi進(jìn)程數(shù)不夠用、php執(zhí)行時(shí)間長(zhǎng)、或者是php-cgi進(jìn)程死掉,都會(huì)出現(xiàn)502錯(cuò)誤。Nginx 502 Bad Gateway錯(cuò)誤的解決辦法2

今天,我的VPS頻繁提示Nginx 502 Bad Gateway錯(cuò)誤了,重啟了VPS解決之后又出現(xiàn),很煩。有點(diǎn)想不通,前兩天網(wǎng)站達(dá)到了1290的訪問量都沒有出什么問題,怎么這次就出現(xiàn)了502 Bad Gateway?郁悶啊?。?!在搜索了很久,終于找到了不少相關(guān)的答案,希望修改之后不會(huì)再出現(xiàn)這個(gè)錯(cuò)誤了。唉,既然在網(wǎng)上找了那么久的答案,那當(dāng)然得把有用的東西記錄下,免得我下次再去谷歌~

由于我是采用了LNMP一鍵安裝包 ,出了問題肯定要先到官方論壇去搜索下了,真好,官方有個(gè)這樣的置頂帖,大家先瞧瞧。

LNMP一鍵安裝包官方的:

第一種原因:目前l(fā)nmp一鍵安裝包比較多的問題就是502 Bad Gateway,大部分情況下原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功。解決辦法:可以嘗試根據(jù)lnmp一鍵安裝包中的腳本手動(dòng)安裝一下,看看是什么錯(cuò)誤導(dǎo)致的。

第二種原因:

在php.ini里,eaccelerator配置項(xiàng)一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway

第三種原因:

在安裝好使用過程中出現(xiàn)502問題,一般是因?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)增加。

第四種原因:

php執(zhí)行超時(shí),修改/usr/local/php/etc/php.ini 將max_execution_time 改為300

第五種原因:

磁盤空間不足,如mysql日志占用大量空間

第六種原因:

查看php-cgi進(jìn)程是否在運(yùn)行

也有網(wǎng)友給出了另外的解決辦法:

Nginx 502 Bad Gateway的含義是請(qǐng)求的PHP-CGI已經(jīng)執(zhí)行,但是由于某種原因(一般是讀取資源的問題)沒有執(zhí)行完畢而導(dǎo)致PHP-CGI進(jìn)程終止,一般來說Nginx 502 Bad Gateway和php-fpm.conf的設(shè)置有關(guān)。

php-fpm.conf有兩個(gè)至關(guān)重要的參數(shù),一個(gè)是max_children,另一個(gè)是request_terminate_timeout,但是這個(gè)值不是通用的,而是需要自己計(jì)算的。在安裝好使用過程中出現(xiàn)502問題,一般是因?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)增加。

計(jì)算的方式如下:

如果你的服務(wù)器性能足夠好,且寬帶資源足夠充足,PHP腳本沒有系循環(huán)或BUG的話你可以直接將 request_terminate_timeout設(shè)置成0s。0s的含義是讓PHP-CGI一直執(zhí)行下去而沒有時(shí)間*。而如果你做不到這一點(diǎn),也就 是說你的PHP-CGI可能出現(xiàn)某個(gè)BUG,或者你的寬帶不夠充足或者其他的原因?qū)е履愕腜HP-CGI假死那么就建議你給 request_terminate_timeout賦一個(gè)值,這個(gè)值可以根據(jù)服務(wù)器的性能進(jìn)行設(shè)定。一般來說性能越好你可以設(shè)置越高,20分鐘-30分 鐘都可以。而max_children這個(gè)值又是怎么計(jì)算出來的呢?這個(gè)值原則上是越大越好,php-cgi的進(jìn)程多了就會(huì)處理的很快,排隊(duì)的請(qǐng)求就會(huì)很少。 設(shè)置max_children也需要根據(jù)服務(wù)器的性能進(jìn)行設(shè)定,一般來說一臺(tái)服務(wù)器正常情況下每一個(gè)php-cgi所耗費(fèi)的內(nèi)存在20M左右。

按照官方的答案,排查了相關(guān)的可能,并結(jié)合了網(wǎng)友的答案,得出了下面的解決辦法。

1、查看php fastcgi的進(jìn)程數(shù)(max_children值)

代碼:netstat -anpo | grep “php-cgi” | wc -l

5(假如顯示5)

2、查看當(dāng)前進(jìn)程

代碼:top觀察fastcgi進(jìn)程數(shù),假如使用的進(jìn)程數(shù)等于或高于5個(gè),說明需要增加(根據(jù)你機(jī)器實(shí)際狀況而定)

3、調(diào)整/usr/local/php/etc/php-fpm.conf 的相關(guān)設(shè)置

<value name=”max_children”>10</value><value name=”request_terminate_timeout”>60s</value>max_children最多10個(gè)進(jìn)程,按照每個(gè)進(jìn)程20MB內(nèi)存,最多200MB。request_terminate_timeout執(zhí)行的時(shí)間為60秒,也就是1分鐘。

nginx做反向代理,當(dāng)并發(fā)數(shù)大一點(diǎn)時(shí)網(wǎng)站會(huì)報(bào)502 Bad Gateway,是什么原因?qū)е碌模?/p>

你的nginx緩存設(shè)置太小了,把它調(diào)大點(diǎn)更多追問追答追問我的nginx沒有設(shè)置緩存的,只負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求。追答了解你的情況,我之前也是這樣,但是真的是緩存大小的問題,你設(shè)置一個(gè)緩存叫什么xxx_buffer_size就能解決這個(gè)問題追問是把這個(gè)的參數(shù)fastcgi_buffer_size調(diào)大還是把proxy_buffer_size這個(gè)調(diào)大?追答proxy_buffer_size這個(gè)調(diào)大點(diǎn)

wordpress緩存插件啟用錯(cuò)誤nginx 502 bad gateway問題怎么解決

1)閃爍“|”字形光標(biāo)來為對(duì)象插入光標(biāo)、“I”字形光標(biāo)為文本光標(biāo)。

2)回車(Enter)鍵:?jiǎn)萎a(chǎn)生一個(gè)換行符,起換行與分段的自作用。

3)刪除(Delete)鍵:刪除插入光標(biāo)右邊的一個(gè)或選定的若干字符。

4)退格鍵(Back Space):刪除插入光標(biāo)左邊的一個(gè)或選定的若干字符。

5)插入鍵(Insert):插入與改寫模式的切換zd [ 雙擊狀態(tài)欄中的改定按鈕 ]。

6)F4:重復(fù)上一次操作。本回答被提問者采納

502 bad gateway nginx怎么解決

發(fā)生原因

1、PHP FastCGI進(jìn)程數(shù)不夠用

當(dāng)網(wǎng)站并發(fā)訪問巨大時(shí),php fastcgi的進(jìn)程數(shù)不有一定的保障,因?yàn)閏gi是單線程多進(jìn)程工作的,也就是說cgi需要處理完一個(gè)頁面后再繼續(xù)下一個(gè)頁面。如果進(jìn)程數(shù)不夠,當(dāng)訪問巨大的時(shí)候,cgi按排隊(duì)處理之前的請(qǐng)求,之后的請(qǐng)求只有被放棄。這個(gè)時(shí)候nginx就會(huì)不時(shí)的出現(xiàn)502錯(cuò)誤。

2、PHP FastCGI的內(nèi)存不夠用

當(dāng)nginx返回靜態(tài)頁面時(shí),這個(gè)問題一般不會(huì)出現(xiàn),因?yàn)閚ginx不需要php cgi的處理而直接返回靜態(tài)頁面。但是當(dāng)網(wǎng)頁需要處理大量的php復(fù)雜操作的時(shí)候,例如執(zhí)行api采集,或者采集頁面的時(shí)候,那對(duì)php的要求是相當(dāng)高的,如果配置給他的內(nèi)存太少,那很容易就會(huì)導(dǎo)致php崩潰。

1、首先判斷是不是php fastcgi進(jìn)程數(shù)是否夠用。

netstat -anpo | grep "php-cgi" | wc -l

如果實(shí)際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“FastCGI進(jìn)程數(shù)”不夠用,需要增大。 但是要注意計(jì)算你的內(nèi)存是否足夠支撐更多的進(jìn)程數(shù),如果物理機(jī)內(nèi)存并不足夠大,加大這個(gè)進(jìn)程數(shù)是沒有用處的。

2、部分PHP程序的執(zhí)行時(shí)間超過了Nginx的等待時(shí)間,可以適當(dāng)增加nginx.conf配置文件中FastCGI的timeout時(shí)間,如下:

http

{

......

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

......

}

......

php.ini中memory_limit設(shè)低了會(huì)出錯(cuò),修改了php.ini的memory_limit為64M,重啟nginx,發(fā)現(xiàn)好了,原來是PHP的內(nèi)存不足了。

如果以上方法依然不能解決問題,請(qǐng)嘗試優(yōu)化你的php程序,盡量的減少采集和數(shù)據(jù)庫操作,加快其反應(yīng)速度,有時(shí)候往往是因?yàn)樽约旱膒hp程序反應(yīng)速度太慢造成的。

3:目前l(fā)nmp一鍵安裝包比較多的問題就是502 Bad Gateway,大部分情況下原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功。

解決方法:

可以嘗試根據(jù)lnmp一鍵安裝包中的腳本手動(dòng)安裝一下,看看是什么錯(cuò)誤導(dǎo)致的,在網(wǎng)上搜索一下,或者把錯(cuò)誤信息發(fā)上來。我們給你分析一下錯(cuò)誤原因。

4:

在php.ini里,eaccelerator配置項(xiàng)一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway

第三e79fa5e9819331333361303133種原因:

在安裝好使用過程中出現(xiàn)502問題,一般是因?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)增加。(一般1個(gè)php-cgi占有20M內(nèi)存,請(qǐng)依照內(nèi)存來設(shè)定該值)

也有可能是max_requests值不夠用。

5:

php執(zhí)行超時(shí),修改/usr/local/php/etc/php.ini 將max_execution_time 改為300

第五種原因:

磁盤空間不足,如mysql日志占用大量空間

6:

查看php-cgi進(jìn)程是否在運(yùn)行

可以通過# top 命令查看。

nginx反向代理解決辦法有點(diǎn)不同

將nginx的error log打開,發(fā)現(xiàn)”pstream sent too big header while reading response header from upstream”這樣的錯(cuò)誤提示,查閱了一下資料,大意是nginx緩沖區(qū)有一個(gè)bug造成的,我們網(wǎng)站的頁面消耗占用緩沖區(qū)可能過大

apache返回的header 太大nginx處理不過來就導(dǎo)致了。

代碼如下 復(fù)制代碼

server {

listen 80;

server_name *.xywy.com ;

large_client_header_buffers 4 16k;

#charset koi8-r;

# access_log off;

location / {

#添加這3行 ,

proxy_buffer_size 64k;

proxy_buffers 32 32k;

proxy_busy_buffers_size 128k;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

set $baiduspider '';

if ( $http_user_agent ~ Baiduspider) {

set $baiduspider Baidu;

}

............

如果是 nginx+PHPcgi 就該

fastcgi_connect_timeout 60;

fastcgi_send_timeout 180;

fastcgi_read_timeout 180;

fastcgi_buffer_size 128k;

fastcgi_buffers 4 256k;

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 256k;

fastcgi_intercept_errors on

011/01/07 11:12:57 [error] 10770#0: *38585340 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 116.22.131.154, server: *.xywy.com, request: "GET /ysmp/index.php?did=124994 HTTP/1.0", upstream: "http://127.0.0.1:8080/ysmp/index.php?did=124994", host: "xywy.yn16.com"

后來原來那錯(cuò)誤沒了出了新錯(cuò)誤了

upstream timed out 超時(shí)?

代碼如下 復(fù)制代碼

server {

listen 80;

server_name *.xywy.com ;

large_client_header_buffers 4 16k;

client_max_body_size 300m;

client_body_buffer_size 128k;

proxy_connect_timeout 600;

proxy_read_timeout 600;

proxy_send_timeout 600;

proxy_buffer_size 64k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

#charset koi8-r;

# access_log off;

request_terminate_timeout

  如果主要是在一些post或者數(shù)據(jù)庫操作的時(shí)候出現(xiàn)502這種情況,而不是在靜態(tài)頁面操作中常見,那么可以查看一下php-fpm.conf設(shè)置中的一項(xiàng):

request_terminate_timeout

這個(gè)值是max_execution_time,就是fast-cgi的執(zhí)行腳本時(shí)間。

0s

0s為關(guān)閉,就是無限執(zhí)行下去。(當(dāng)時(shí)裝的時(shí)候沒仔細(xì)看就改了一個(gè)數(shù)字)問題解決了,執(zhí)行很長(zhǎng)時(shí)間也不會(huì)出錯(cuò)了。優(yōu)化fastcgi中,還可以改改這個(gè)值5s 看看效果。

windows nginx 502 bad gateway怎么解決

一些運(yùn)行在Nginx上的網(wǎng)站有時(shí)候會(huì)出現(xiàn)“502 Bad Gateway”錯(cuò)誤,有些時(shí)候甚至頻繁copy的出現(xiàn)。以下是小編搜集整理的一些Nginx 502錯(cuò)誤的排查方法,zhidao供參考: Nginx 502錯(cuò)誤的原因比較多,是因?yàn)樵诖砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。本回答被提問者采納

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

window10如何開啟立體聲混音 qq說說同步到微信朋友圈 c4d物體選不中不能移動(dòng)應(yīng)該怎么辦?物體選擇不了 微信應(yīng)該怎么刪除好友 蘋果手機(jī)聽筒聲音小應(yīng)該怎么辦 電腦屏幕出現(xiàn)雪花是什么原因 cad如何制作塊 插入塊 手機(jī)usb如何連接電腦上網(wǎng) 新浪微博怎么發(fā)微博 淘寶賣家發(fā)微淘怎么寫 今日頭條如何發(fā)私信比較好 在ps中如何用通道摳圖 如何關(guān)閉防火墻 應(yīng)該怎么在你的蘋果手機(jī)照片上添加文字 微信應(yīng)用如何開通小額免密支付 惠普 laser jet m1136 mf 打印機(jī)驅(qū)動(dòng)安裝步驟是什么呢? 蘋果手表 apple watch 如何重新配對(duì) 如何去除桌面圖標(biāo)下的底色[xp系統(tǒng)] 天龍八部手游應(yīng)該怎么在電腦上玩 excel中怎么設(shè)置萬元為單位 ug10.0教程:[4]ug如何導(dǎo)出2d圖紙(dwgdxf)經(jīng)驗(yàn) 如何查找qq群下載保存的文件 火影忍者手游官方電腦版怎么操作(火影忍者手游模擬器) 360瀏覽器全屏看大圖功能開啟/關(guān)閉方法教程是什么 qq聊天如何換行 excel中繪制表格斜線應(yīng)該怎么做? 拼多多上貨助理好用嗎?是否可以刪除商品嗎 二進(jìn)制怎么轉(zhuǎn)十進(jìn)制,十進(jìn)制如何轉(zhuǎn)二進(jìn)制 怎么將excel表格分頁顯示 三星手機(jī)如何刷機(jī) 淘寶直通車定向推廣如何設(shè)置 電腦任務(wù)欄跑到左邊豎向應(yīng)該怎么辦 cad圖紙中鋼筋符號(hào)顯示問號(hào)應(yīng)該怎么辦 matlab 各種 對(duì)數(shù)函數(shù) 用法以及實(shí)例是什么 電腦播放本地視頻只有聲音沒有圖像應(yīng)該怎么辦 搜狐新聞發(fā)布_媒體平臺(tái)發(fā)布_怎么在搜狐上發(fā)文章 ppt應(yīng)該怎么插入地圖 淘寶天貓商城設(shè)置商品的打折、減價(jià)、促銷價(jià) Word編輯技巧:[19]輸入羅馬數(shù)字的技巧 把一個(gè)Word文檔中的樣式導(dǎo)入到另一個(gè)Word文檔
Top