婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 深入分析nginx+php-fpm服務HTTP狀態碼502

深入分析nginx+php-fpm服務HTTP狀態碼502

熱門標簽:漯河電銷外呼系統價格 蕪湖呼叫中心外呼系統哪家強 電銷機器人怎么錄音 咸陽穩定外呼系統公司 貴港市機器人外呼系統團隊 貴陽語音電銷機器人 征服者快捷酒店地圖標注 ec外呼系統怎么樣 天津外呼系統運營商

我們的一個web項目,由于新上城市增多,導致訪問量增大,DB壓力增大,作為提供接口的業務方,最近被下游反饋大量請求“502”。

502,bad gateway,一般都是upstream(這里就是php)出錯,對于php,造成502的原因常見的就是腳本執行超過timeout設置時間,或者timeout設置過大,導致php進程長時間不能被釋放,沒有空閑worker進程來接客。

我們的項目就是php執行時間設置過短導致的,對于這種情況,可以先適當增大php的執行時間,先保證清除502,優化的事情畢竟要花更多的時間。

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

下邊我就來詳細的分析一下為什么php腳本執行超出設置時間會導致nginx返回502。

先來布景,讓問題復現:

nginx和php分別只啟動一個worker,方便追蹤。

php-fpm的request_terminate_timeout設置為3S。

測試腳本test.php

sleep(20);
echo 'ok';

go go go:

在瀏覽器訪問www.v.com/test.php,3S后如期出現...404???what???

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

這個location配置是當發生5xx錯誤時跳轉到一個好看點的界面,但是我在/usr/share/nginx/html下并沒有50x.html這個文件。所以搞了個404出來。這不是很影響我判斷問題的準確性?直接注釋掉!再次訪問,等待3S,終于'正常'的界面出來了。

環境好了,下邊就上套路,按照web問題的排查套路走一遍,先看看錯誤日志吧:

nginx:

報錯都是 recv() failed (104: Connection reset by peer。

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

我們在看看php-fpm的錯誤日志:

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

每一次請求都是產生2個WARNING和1個NOTICE:

WARNING:腳本執行超時了,終止了。

WARNING:子進程收到SIGTERM信號退出了。

NOTICE:啟了一個新的子進程(因為我設置的pm.min_spare_servers = 1)

看來如果php的worker進程執行超時,不僅終止腳本執行,而且worker進程也會退出。看來nginx的報錯連接被重置是因為php的worker進程退出了(在TCP連接中一方如果斷掉的話會發送RST給另一方)

通過日志已經可以知道php腳本執行超時,worker子進程退出,導致nginx報錯Connection reset by peer,下邊我們通過strace來看看php和nginx的情況:

php:

1.accept一個nginx的連接請求(socket,bind,listen都在master中完成 ),可以看到nginx的端口是47039,從FD0中讀取數據,就是從標準輸入中,這個是fast-cgi協議規定的。accept之后的已連接描述符是3。

2.從FD3中讀取nginx傳遞過來的數據,fastcgi協議格式,接收了856字節。為什么read5次呢?

因為fastcgi協議數據包是8字節對齊,由包頭和包體組成。并且都是會先發一個request數據包,包含一些請求ID,版本,typpe等信息(包頭包體各占8字節),再發一個params數據包,傳遞get參數和環境變量(包頭8字節,包體變長),最后發送一個沒有包體只有包頭的params數據包,表示參數發送結束(包頭8字節)。所以前3個read用來讀出request包的包頭和包體,還有params包的包頭,第四個read是讀取真正的數據,最后一個read是讀取最后一個params包的包頭。所以nginx傳遞的數據應該是8+8+8+856+8=896字節(和下邊nginx的傳輸bytes能對應上)。注意如果是post方式,還會發送stdin數據包。

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

nginx:

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

2.從FD3中接收數據,HTTP協議。

3.創建一個socket,FD21,用于和php建立連接。

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

5.向FD21寫入數據,fast-cgi協議格式,我們看到寫入的長度是896,和上邊的php接收的長度是對應的。

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

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

8.關閉和FD21的連接。

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

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

來驗證一下nginx訪問日志和錯誤日志的推斷。可以看到的確是FD8,FD9,并處于寫入模式。

那么在這個過程中整個網絡包的傳輸我們不妨也看一下:

通過tcpdump抓包,用神器看比較方便。

因為只想看nginx和php的通訊,在上邊又知道nginx的端口是47039,可以通過tcp.srcport==47039過濾出對應的包。

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

注意:

SYN,FIN各占一個序列號

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

序列號是每一字節加1(29包發送896字節,同時29包seq為4219146879,30包的ack為4219147775,正好相差896)

RST不需要回復。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:濰坊 怒江 淮北 西寧 西藏 香港 東營 攀枝花

巨人網絡通訊聲明:本文標題《深入分析nginx+php-fpm服務HTTP狀態碼502》,本文關鍵詞  深入分析,nginx+php-fpm,服務,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《深入分析nginx+php-fpm服務HTTP狀態碼502》相關的同類信息!
  • 本頁收集關于深入分析nginx+php-fpm服務HTTP狀態碼502的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品美女久久福利网站 | 日韩一区精品视频| 久久久久成人黄色影片| 国产午夜亚洲精品午夜鲁丝片| 欧美成人欧美edvon| 欧美色电影在线| 一个色妞综合视频在线观看| 亚洲国产中文字幕| 免费看欧美女人艹b| 极品瑜伽女神91| bt7086福利一区国产| 91网站黄www| 91精品国产免费| 欧美激情一区二区三区四区| 久久久久久久久伊人| 亚洲精品国产第一综合99久久| 亚洲一区在线观看免费观看电影高清| 亚洲国产日产av| 韩国av一区二区| 99久久综合精品| 日韩一区二区三区三四区视频在线观看| 精品少妇一区二区三区免费观看 | 黄页视频在线91| 成人黄色在线视频| 欧美天天综合网| 国产亚洲精久久久久久| 国产精品电影一区二区| 奇米色777欧美一区二区| av不卡一区二区三区| 日韩欧美中文一区二区| 一区二区三区加勒比av| 国产91精品在线观看| 欧美一区二区三区系列电影| 亚洲色图欧洲色图| 久久精品国产色蜜蜜麻豆| 亚洲一区二区三区四区在线免费观看 | 欧美日韩mp4| 国产香蕉久久精品综合网| 奇米四色…亚洲| 欧美色倩网站大全免费| 国产精品剧情在线亚洲| 亚洲成a人片在线观看中文| 欧美96一区二区免费视频| 色婷婷综合五月| 久久久久久久网| 美女视频网站久久| 91久久国产最好的精华液| 中文av一区二区| 成人小视频免费观看| 精品国产区一区| 日韩国产欧美在线播放| 日本高清免费不卡视频| 欧美经典三级视频一区二区三区| 奇米影视一区二区三区| 欧美日本不卡视频| 午夜精彩视频在线观看不卡| 一本色道久久综合亚洲精品按摩| 国产欧美日韩在线| 美日韩一区二区三区| 色综合久久中文综合久久97| 精品国产乱码久久久久久蜜臀| 亚洲国产综合色| 在线观看不卡一区| 欧美精品一区二区三区在线播放| 一区二区三区在线观看国产 | 亚洲黄色免费电影| 国产精品影视天天线| 91麻豆文化传媒在线观看| 日韩精品中文字幕在线一区| 亚洲免费av观看| 国产一区二区三区四| 91精品蜜臀在线一区尤物| 亚洲视频在线一区二区| 粉嫩在线一区二区三区视频| 欧美大片拔萝卜| 日本欧美一区二区三区乱码| 美女在线视频一区| 欧美日韩另类国产亚洲欧美一级| 国产精品丝袜黑色高跟| 韩国毛片一区二区三区| 欧美精品乱码久久久久久按摩| 亚洲最大色网站| 一区二区国产视频| 欧美日韩一区二区三区在线| 亚洲精品综合在线| 99re亚洲国产精品| 国产精品国产三级国产aⅴ原创| 激情五月婷婷综合网| 91精品国产91久久综合桃花| 亚洲午夜电影在线| 欧美日韩免费在线视频| 亚洲国产综合91精品麻豆| 在线观看av一区二区| 一区二区欧美视频| 91精品国产乱码久久蜜臀| 美日韩一区二区三区| 7777女厕盗摄久久久| 奇米一区二区三区| 国产亚洲制服色| 不卡av在线网| 亚洲婷婷综合色高清在线| 91麻豆国产香蕉久久精品| 亚洲三级视频在线观看| 国产资源在线一区| 欧洲视频一区二区| 日韩精彩视频在线观看| 日韩欧美国产综合| 国产一区二区三区在线观看免费| 国产日韩综合av| 99r国产精品| 三级影片在线观看欧美日韩一区二区| 欧美妇女性影城| 蜜桃av噜噜一区二区三区小说| 国产成人精品午夜视频免费| 精品一区二区三区在线播放| 日韩免费看的电影| 国产超碰在线一区| 亚洲欧美日韩在线播放| 欧美精品久久久久久久久老牛影院 | 国产精品一区二区久久精品爱涩| 国产欧美日韩亚州综合| 色综合天天性综合| 日韩精品视频网站| 欧美国产激情二区三区| 日韩免费高清av| 国产一区三区三区| 成人免费在线播放视频| 91精品国产综合久久精品| 国产一区二区精品久久91| 色乱码一区二区三区88| 日韩成人av影视| 久久久天堂av| 三级成人在线视频| 不卡影院免费观看| 亚洲专区一二三| 欧美日韩国产天堂| 国产大陆亚洲精品国产| 亚洲人成亚洲人成在线观看图片| 欧美三级中文字| 懂色av中文一区二区三区 | 国产精品一区二区黑丝| 亚洲chinese男男1069| 99久久精品国产精品久久| 亚洲线精品一区二区三区八戒| 久久亚洲免费视频| 在线精品国精品国产尤物884a| 黄色资源网久久资源365| 亚洲一二三级电影| 精品久久久久久久一区二区蜜臀| 国产成人综合网站| 热久久一区二区| **性色生活片久久毛片| 欧美一区二区视频在线观看2022| 99re66热这里只有精品3直播| 亚洲成精国产精品女| 精品对白一区国产伦| 在线观看91视频| gogogo免费视频观看亚洲一| 亚洲精品国久久99热| 国产精品国产三级国产有无不卡 | 欧美精品在线一区二区三区| 国产精品66部| 一区二区在线观看不卡| 日韩一区二区三区免费观看| 一本大道久久a久久综合婷婷| 成人激情小说网站| 成人综合婷婷国产精品久久 | 夜夜嗨av一区二区三区| 国产精品色噜噜| 精品国产电影一区二区| 91国偷自产一区二区三区观看| 日韩美女久久久| 国产精品成人在线观看| 精品国产三级电影在线观看| 欧美xxxxx裸体时装秀| 欧美一二三四区在线| 在线观看91精品国产麻豆| 欧美色图片你懂的| 美女视频免费一区| 亚洲靠逼com| 亚洲国产综合视频在线观看| 爽爽淫人综合网网站| 蜜桃在线一区二区三区| 精品一区二区在线播放| 蜜桃视频在线观看一区| 久久精品久久99精品久久| 国产一区二区三区av电影| 亚洲va欧美va国产va天堂影院| 一区二区三区国产精华| 国产精品国产三级国产aⅴ入口| 中文字幕在线免费不卡| 欧美喷潮久久久xxxxx| 东方aⅴ免费观看久久av| 亚洲午夜电影在线观看| 日本一区二区三区视频视频| 成人免费看片app下载| 床上的激情91.| 99国产精品久久久久久久久久久| 国产精品一区二区在线观看不卡 | 国产喷白浆一区二区三区|