青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長(zhǎng)網(wǎng)

深入分析nginx+php-fpm服務(wù)HTTP狀態(tài)碼502

2022-10-12 13:54| 查看: 1340 |來(lái)源: 互聯(lián)網(wǎng)

我們的一個(gè)web項(xiàng)目,由于新上城市增多,導(dǎo)致訪問(wèn)量增大,DB壓力增大,作為提供接口的業(yè)務(wù)方,最近被下游反饋大量請(qǐng)求“502”。 502,bad gateway,一般都是upstream(這里就是php)出錯(cuò),對(duì)于php,造成502的原因常

我們的一個(gè)web項(xiàng)目,由于新上城市增多,導(dǎo)致訪問(wèn)量增大,DB壓力增大,作為提供接口的業(yè)務(wù)方,最近被下游反饋大量請(qǐng)求“502”。

502,bad gateway,一般都是upstream(這里就是php)出錯(cuò),對(duì)于php,造成502的原因常見的就是腳本執(zhí)行超過(guò)timeout設(shè)置時(shí)間,或者timeout設(shè)置過(guò)大,導(dǎo)致php進(jìn)程長(zhǎng)時(shí)間不能被釋放,沒有空閑worker進(jìn)程來(lái)接客。

我們的項(xiàng)目就是php執(zhí)行時(shí)間設(shè)置過(guò)短導(dǎo)致的,對(duì)于這種情況,可以先適當(dāng)增大php的執(zhí)行時(shí)間,先保證清除502,優(yōu)化的事情畢竟要花更多的時(shí)間。

控制php執(zhí)行時(shí)間的選項(xiàng)有兩個(gè),在php.ini中 max_execution_time 和php-fpm中 request_terminate_timeout,其中 request_terminate_timeout 可以覆蓋 max_execution_time,所以如果不想改全局的php.ini,那只改php-fpm的配置就可以了。

下邊我就來(lái)詳細(xì)的分析一下為什么php腳本執(zhí)行超出設(shè)置時(shí)間會(huì)導(dǎo)致nginx返回502。

先來(lái)布景,讓問(wèn)題復(fù)現(xiàn):

nginx和php分別只啟動(dòng)一個(gè)worker,方便追蹤。

php-fpm的request_terminate_timeout設(shè)置為3S。

測(cè)試腳本test.php

sleep(20); echo 'ok';

go go go:

在瀏覽器訪問(wèn)www.v.com/test.php,3S后如期出現(xiàn)...404???what???

出師不利啊,趕緊看看nginx的配置文件

這個(gè)location配置是當(dāng)發(fā)生5xx錯(cuò)誤時(shí)跳轉(zhuǎn)到一個(gè)好看點(diǎn)的界面,但是我在/usr/share/nginx/html下并沒有50x.html這個(gè)文件。所以搞了個(gè)404出來(lái)。這不是很影響我判斷問(wèn)題的準(zhǔn)確性?直接注釋掉!再次訪問(wèn),等待3S,終于'正常'的界面出來(lái)了。

環(huán)境好了,下邊就上套路,按照web問(wèn)題的排查套路走一遍,先看看錯(cuò)誤日志吧:

nginx:

報(bào)錯(cuò)都是 recv() failed (104: Connection reset by peer。

recv時(shí)失敗了,連接被重置了。為啥連接被重置了?難道一言不合。

我們?cè)诳纯磒hp-fpm的錯(cuò)誤日志:

(注意php-fpm中php_admin_value[error_log]選項(xiàng)指定php的錯(cuò)誤日志,會(huì)覆蓋php.ini中的。但是這里不是看php的錯(cuò)誤,而是看php-fpm的錯(cuò)誤。php-fpm的錯(cuò)誤日志由php-fpm.conf中的error_log選項(xiàng)指定。)

每一次請(qǐng)求都是產(chǎn)生2個(gè)WARNING和1個(gè)NOTICE:

WARNING:腳本執(zhí)行超時(shí)了,終止了。

WARNING:子進(jìn)程收到SIGTERM信號(hào)退出了。

NOTICE:?jiǎn)⒘艘粋(gè)新的子進(jìn)程(因?yàn)槲以O(shè)置的pm.min_spare_servers = 1)

看來(lái)如果php的worker進(jìn)程執(zhí)行超時(shí),不僅終止腳本執(zhí)行,而且worker進(jìn)程也會(huì)退出。看來(lái)nginx的報(bào)錯(cuò)連接被重置是因?yàn)閜hp的worker進(jìn)程退出了(在TCP連接中一方如果斷掉的話會(huì)發(fā)送RST給另一方)

通過(guò)日志已經(jīng)可以知道php腳本執(zhí)行超時(shí),worker子進(jìn)程退出,導(dǎo)致nginx報(bào)錯(cuò)Connection reset by peer,下邊我們通過(guò)strace來(lái)看看php和nginx的情況:

php:

1.accept一個(gè)nginx的連接請(qǐng)求(socket,bind,listen都在master中完成 ),可以看到nginx的端口是47039,從FD0中讀取數(shù)據(jù),就是從標(biāo)準(zhǔn)輸入中,這個(gè)是fast-cgi協(xié)議規(guī)定的。accept之后的已連接描述符是3。

2.從FD3中讀取nginx傳遞過(guò)來(lái)的數(shù)據(jù),fastcgi協(xié)議格式,接收了856字節(jié)。為什么read5次呢?

因?yàn)閒astcgi協(xié)議數(shù)據(jù)包是8字節(jié)對(duì)齊,由包頭和包體組成。并且都是會(huì)先發(fā)一個(gè)request數(shù)據(jù)包,包含一些請(qǐng)求ID,版本,typpe等信息(包頭包體各占8字節(jié)),再發(fā)一個(gè)params數(shù)據(jù)包,傳遞get參數(shù)和環(huán)境變量(包頭8字節(jié),包體變長(zhǎng)),最后發(fā)送一個(gè)沒有包體只有包頭的params數(shù)據(jù)包,表示參數(shù)發(fā)送結(jié)束(包頭8字節(jié))。所以前3個(gè)read用來(lái)讀出request包的包頭和包體,還有params包的包頭,第四個(gè)read是讀取真正的數(shù)據(jù),最后一個(gè)read是讀取最后一個(gè)params包的包頭。所以nginx傳遞的數(shù)據(jù)應(yīng)該是8+8+8+856+8=896字節(jié)(和下邊nginx的傳輸bytes能對(duì)應(yīng)上)。注意如果是post方式,還會(huì)發(fā)送stdin數(shù)據(jù)包。

3.設(shè)置休眠20S,就是php程序中的sleep(20),之后由于進(jìn)程被終止了,所以后邊就沒啦。strace程序也退出啦。

nginx:

1.accept到瀏覽器的請(qǐng)求,可以看到瀏覽器端的端口是56434,IP是192.168.1.105,已建立連接的FD是3。

2.從FD3中接收數(shù)據(jù),HTTP協(xié)議。

3.創(chuàng)建一個(gè)socket,F(xiàn)D21,用于和php建立連接。

4.連接到FD21,可以看到連接的是本機(jī)的9000端口,這里nginx和php-fpm使用IP socket連接方式,nginx和php-fpm部署在一臺(tái)機(jī)器上可以考慮unix domain socket。

5.向FD21寫入數(shù)據(jù),fast-cgi協(xié)議格式,我們看到寫入的長(zhǎng)度是896,和上邊的php接收的長(zhǎng)度是對(duì)應(yīng)的。

6.recvfrom函數(shù)從FD21中返回 ECONNRESET (Connection reset by peer)

7.向FD9中寫入錯(cuò)誤信息,可以推斷FD9就是nginx錯(cuò)誤日志的文件描述符。

8.關(guān)閉和FD21的連接。

9.向FD3寫入502 Bad Gateway,就是返回給瀏覽器的信息。

10.向FD8寫入一條訪問(wèn)日志,可以推斷FD8就是nginx訪問(wèn)日志的文件描述符。

來(lái)驗(yàn)證一下nginx訪問(wèn)日志和錯(cuò)誤日志的推斷。可以看到的確是FD8,F(xiàn)D9,并處于寫入模式。

那么在這個(gè)過(guò)程中整個(gè)網(wǎng)絡(luò)包的傳輸我們不妨也看一下:

通過(guò)tcpdump抓包,用神器看比較方便。

因?yàn)橹幌肟磏ginx和php的通訊,在上邊又知道nginx的端口是47039,可以通過(guò)tcp.srcport==47039過(guò)濾出對(duì)應(yīng)的包。

可以看到nginx和php-fpm數(shù)據(jù)交互的過(guò)程:47039->9000建立三次握手,接著向9000發(fā)送數(shù)據(jù),9000回復(fù)ACK,3S后9000回復(fù)RST。沒毛病。

注意:

SYN,F(xiàn)IN各占一個(gè)序列號(hào)

ACK,RST不占序列號(hào)(28,29兩個(gè)包的reqnum和acknum都是相同的)

序列號(hào)是每一字節(jié)加1(29包發(fā)送896字節(jié),同時(shí)29包seq為4219146879,30包的ack為4219147775,正好相差896)

RST不需要回復(fù)。

以上所述是小編給大家介紹的深入分析nginx+php-fpm服務(wù)HTTP狀態(tài)碼502,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)17站長(zhǎng)網(wǎng)的支持!

本文最后更新于 2022-10-12 13:54,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長(zhǎng):[email protected]
·END·
站長(zhǎng)網(wǎng)微信號(hào):w17tui,關(guān)注站長(zhǎng)、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營(yíng)銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來(lái)自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長(zhǎng)網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信

大家都在看

  • 當(dāng)我們?cè)诠蚕砭W(wǎng)絡(luò)訪問(wèn)的時(shí)候,可能會(huì)遇到提示指定的網(wǎng)絡(luò)名不再可用的問(wèn)題,這可能是由于我們的共享網(wǎng)絡(luò)出現(xiàn)了錯(cuò)誤,也可能是被共享的對(duì)象所拒絕了。指定的網(wǎng)絡(luò)名 ......

    故障排除 2023-03-10
  •   文/曹楊  原標(biāo)題:誰(shuí)還看電視?  爸爸戴一副老花鏡,媽媽戴一副近視鏡,一人坐在沙發(fā),一人躺在床上,各自刷著自己關(guān)注的博主更新的短視頻。電視也許開著,但只是背景。  這樣的畫面,幾乎成了洛奇家的常 ...

    站長(zhǎng) 2020-12-09
  • 1、首先進(jìn)入到“百度”軟件中, 2、然后在其中輸入“百度識(shí)圖”, 3、之后點(diǎn)擊圖中的“開始使用”按鈕, 4、緊接著點(diǎn)擊右下角的“相冊(cè)”功能, 5、在相冊(cè)下 ......

    軟件教程 2023-02-17
  • 圖片來(lái)源于簡(jiǎn)書  文/郭開森 楊帆  陸玖財(cái)經(jīng)準(zhǔn)備開新欄目了,每周一創(chuàng)始人郭開森和楊帆合體郭德帆,對(duì)行業(yè)進(jìn)行一些觀察和評(píng)論,第一篇我們?nèi)允谴蛩銓懮鐓^(qū)團(tuán)購(gòu),這是當(dāng)下最火的話題。  來(lái)過(guò)陸玖財(cái)經(jīng)做客的朋友們...

    熱議 2020-12-07
  • 一、軟件沖突1、首先確認(rèn)是否是應(yīng)用程序沖突導(dǎo)致的。2、查看是否只有特定幾個(gè)游戲或應(yīng)用會(huì)導(dǎo)致該問(wèn)題。3、如果是應(yīng)用沖突,那么只要卸載這些app就可以解決了。二 ......

    軟件教程 2022-12-27
  • 電腦端:1、大家可以點(diǎn)擊右邊鏈接進(jìn)入網(wǎng)頁(yè)版的百度網(wǎng)盤,進(jìn)入之后點(diǎn)擊“去登錄”。https://pan.baidu.com/2、之后正確的輸入賬號(hào)密碼進(jìn)行登錄就好啦。手機(jī)端:1 ......

    軟件教程 2022-12-27
  • 一、N100對(duì)比intel i3 1、N100的跑分達(dá)到了147210分,這個(gè)數(shù)據(jù)可以達(dá)到i3的七代級(jí)別。 2、在跑分上也是超越了大部分的I3七代CPU,不過(guò)比I3八代要弱勢(shì)一些。 3 ......

    硬件知識(shí) 2023-04-26
  • 8月15日消息 上周,有媒體報(bào)道前身為百度圖片的“榴蓮”APP含有大量不雅視頻內(nèi)容被用戶舉報(bào)。對(duì)此,百度圖片官方進(jìn)行了回應(yīng),百度圖片表示已經(jīng)對(duì)報(bào)道中所涉及的“生吃旋風(fēng)哥”等爭(zhēng)議內(nèi)容進(jìn)行了下線處理。 此外,百度...

    站長(zhǎng) 2016-08-15
  • 在填寫一些項(xiàng)目申請(qǐng)書中,總是免不了要選擇一些數(shù)字,但是在方框中如何插入數(shù)字,該怎么辦呢?那么下面就由學(xué)習(xí)啦小編給大家分享下word在方框里輸入數(shù)字的技巧, ......

    Word教程 2023-04-27
  • WPS Office手機(jī)版怎么加橫線?很多用戶還不知道WPS Office手機(jī)版怎么加橫線,WPS Office手機(jī)版怎么加橫線,WPS Office手機(jī)版怎么打橫線,WPS Office手機(jī)版怎么弄 ......

    WPS教程 2023-03-31
  • 迅雷前綴是什么 答:迅雷前綴是(magnet:?xt=urn:btih:)括號(hào)里的就是了。 我們只要在這段文字之后輸入后續(xù)的內(nèi)容,就可以創(chuàng)建下載鏈接了。 1、磁力鏈接不基于文 ......

    軟件教程 2023-06-03
  • 一、內(nèi)容特權(quán)。 1、半價(jià)點(diǎn)播。 許多站內(nèi)視頻都需要付費(fèi)觀看,而大會(huì)員用戶可以直接半價(jià)享受; 購(gòu)買成功后的48h內(nèi)無(wú)限次觀看。有部分的內(nèi)容是只限在中國(guó)大陸內(nèi)觀 ......

    軟件教程 2023-05-05
  • 1、首先打開小米運(yùn)動(dòng)的“實(shí)驗(yàn)室功能”。 2、接著點(diǎn)擊“門卡模擬”。 3、然后點(diǎn)擊“我知道了”。 4、最后貼近就可以刷卡成功了。...

    硬件知識(shí) 2023-05-17
  • 1、打開手機(jī)輕顏相機(jī)app,點(diǎn)擊“我的”,點(diǎn)擊“設(shè)置”,2、點(diǎn)擊“幫助與反饋”,3、點(diǎn)擊右下角“在線咨詢”即可聯(lián)系客服,詢問(wèn)自己的問(wèn)題啦!...

    軟件教程 2023-03-16
  • 答:華為P系列: 華為p40,華為p40plus,華為p50,華為p50e,華為p60 華為mate系列: 華為mate40,華為mate50,華為mate50e,華為mate60 華為nova系列: 華為n ......

    鴻蒙系統(tǒng) 2023-04-24
  • 近期有用戶反映,電腦在更新Windows 11 Insider Preview 25252.1000后,出現(xiàn)了應(yīng)用和已壓縮的文件點(diǎn)擊毫無(wú)反應(yīng),拖拽都不行,只能從開始菜單打開的情況,這是怎 ......

    windows11 2022-12-13
  • 可見單元格就是不包括隱藏或者篩選篩選后隱藏起來(lái)的單元格區(qū)域。方法:篩選或隱藏?cái)?shù)據(jù),復(fù)制需要粘貼的值,在目標(biāo)單元格區(qū)域左上角的第一個(gè)單元格處右擊,選擇【 ......

    WPS教程 2022-12-10
  • 答:驍龍8+更好。 驍龍7+gen2實(shí)際上就是驍龍8+的低配版本。 在一些其他的核心架構(gòu)方面都是保持一致的,比如說(shuō)CPU的架構(gòu)、GPU的架構(gòu)等等。 驍龍7+和驍龍8+具體 ......

    硬件知識(shí) 2023-04-06
  •   文/黎明  一場(chǎng)針對(duì)中國(guó)互聯(lián)網(wǎng)巨頭的反壟斷風(fēng)暴正在醞釀,而且這次動(dòng)真格了。  11月10日,國(guó)家市場(chǎng)監(jiān)管總局發(fā)布《關(guān)于平臺(tái)經(jīng)濟(jì)領(lǐng)域的反壟斷指南(征求意見稿)》,要加大對(duì)互聯(lián)網(wǎng)巨頭涉嫌壟斷的調(diào)查和監(jiān)管。 ...

    熱議 2020-11-14
  • win11系統(tǒng)如何釋放掉系統(tǒng)默認(rèn)保留的存儲(chǔ)空間?一般情況下,Windows會(huì)保留一些存儲(chǔ)空間,以便設(shè)備獲得良好性能和成功更新。但是當(dāng)出現(xiàn)系統(tǒng)盤儲(chǔ)存空間不足時(shí),我們會(huì)將幾個(gè)G的保留空間釋放出來(lái),以解燃眉之急。本期教...

    windows11 2022-11-17
  • 文件被win10系統(tǒng)誤報(bào)病毒自動(dòng)刪除了如何進(jìn)行恢復(fù)?有用戶下載了某些破解軟件卻被Win10系統(tǒng)誤認(rèn)為是病毒文件而自動(dòng)刪除,當(dāng)然系統(tǒng)自帶殺毒軟件其實(shí)挺不錯(cuò)的,就是有時(shí)候會(huì)誤報(bào),大家遇到這種情況的時(shí)候就希望把誤刪的...

    windows10 2022-11-20
  • 1、先打開機(jī)頂盒進(jìn)入主界面,并且使用遙控器打開設(shè)置。 2、然后選擇“賬號(hào)與安全”,并且進(jìn)入。 3、最后往下面翻就可以看到“ADB調(diào)試”的選項(xiàng),直接開啟就行了 ......

    軟件教程 2023-06-01
  • 羅技g304dpi燈顏色代表什么:1、藍(lán)色:這種情況是正常工作的顯示,如果說(shuō)是常亮或者閃爍,那都沒有問(wèn)題這是在正常工作呢。2、紅色:如果說(shuō)是紅燈閃爍的話那就是 ......

    硬件知識(shí) 2023-03-16
  • 答:在3DMark壓力測(cè)試當(dāng)中,顯卡需要超高97%才能夠算合格,證明顯卡的穩(wěn)定性是過(guò)關(guān)的。 1、一般的默認(rèn)情況下在2500~3000分就算很正常的了。 2、分?jǐn)?shù)越高說(shuō)明顯卡 ......

    軟件教程 2023-06-01
  • win11系統(tǒng)快速跳過(guò)聯(lián)網(wǎng)創(chuàng)建本地管理賬戶3種方法?現(xiàn)在市面上銷售的品牌筆記本和臺(tái)式機(jī)基本上都預(yù)裝Windows11家庭中文版正版操作系統(tǒng),聯(lián)網(wǎng)后系統(tǒng)會(huì)自動(dòng)激活。當(dāng)用戶拿到新機(jī)器后還需要按照cortana(小娜)的提示一步...

    windows11 2022-11-13
  • 我們經(jīng)常用WPS的時(shí)候,如果需要輸入波浪號(hào)~,會(huì)發(fā)現(xiàn)鍵盤上的波浪號(hào)輸入之后在最上面,但是為了美觀,我們希望波浪號(hào)顯示在中間。這里總結(jié)了三個(gè)方法分享給大家 ......

    WPS教程 2023-02-18
  • 答:中高端水平 i513500hx在處理器當(dāng)中是處于一個(gè)中高端的水平。 i513500hx是第十一代酷睿處理器系列的一員,基礎(chǔ)頻率為2.4GHz,表現(xiàn)十分的不錯(cuò)。 i513500hx介 ......

    硬件知識(shí) 2023-04-27
  • 相信有非常多使用過(guò)筆記本的用戶都聽說(shuō)過(guò)獨(dú)顯直連這個(gè)詞,但很多用戶并不了解獨(dú)顯直連是什么,又有什么用處,那么下面就和小編一起來(lái)看看什么是獨(dú)顯直連和開啟這 ......

    其它 2022-12-15
  • win11系統(tǒng)開機(jī)總是自動(dòng)登錄OneDrive如何關(guān)閉?win11系統(tǒng)開機(jī)的時(shí)候,會(huì)自動(dòng)啟動(dòng)OneDrive,不想要啟動(dòng),該怎么操作呢?下面我們就來(lái)看看詳細(xì)的教程。 在OneDrive界面點(diǎn)小齒輪按鈕,下拉菜單中點(diǎn)【設(shè)置】。 單擊【...

    windows11 2022-11-15
  • 打開軟件,直接填寫就可以。 1、下載安裝easyconnect軟件, 2、打開easyconnect應(yīng)用,在如圖所示的“服務(wù)器地址”一欄輸入如圖所示網(wǎng)址,點(diǎn)擊“連接”, 3、等 ......

    軟件教程 2023-04-03

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 免费夜里18款禁用软粉色 | 亚洲一区在线播放 | 热久久免费频精品99热 | 亚洲视频在线免费观看 | 动漫女主被扒开双腿羞辱 | 亚洲色图在线播放 | 成人亚洲视频在线观看 | 不卡一区二区高清观看视频 | 婚后被调教当众高潮H喷水 回复术士勇者免费观看全集 | 无码国产精品高潮久久9 | 亚洲 制服 欧美 中文字幕 | 麻花传媒XK在线观看 | 亚洲国产精品高清在线 | 中文亚洲大香伊蕉不卡一区 | 蓝男色gay | 国产成人欧美日韩在线电影 | 亚洲午夜精品A片久久软件 亚洲午夜精品A片久久不卡蜜桃 | ca88亚洲城娱乐 | 狠狠久久免费视频在线 | 印度人XXx | 亚洲伦理精品久久 | 亚洲精品成人久久久影院 | 网址在线观看你懂我意思吧免费的 | 国产精品亚洲二线在线播放 | 免费精品国偷自产在线 | 亚洲精品视频免费在线观看 | 正在播放黑人杂交派对卧槽 | 精品久久久亚洲精品中文字幕 | 性奴公司 警花 | 精品无人区麻豆乱码1区2 | 好爽好深太大了再快一点 | 97色伦图片97色伦图影院久久 | 精品高潮呻吟99AV无码 | 暖暖视频在线高清播放 | 国产99久久九九精品无码不卡 | 人妻天天爽夜夜爽三区麻豆A片 | 乡村教师电影完整版在线观看 | 国产精品亚洲精品久久品 | 免费乱理伦片在线观看夜 | 0855福利| 1819sextub欧美中国 |