婷婷综合国产,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
    欧美性大战久久久久久久蜜臀| 国产午夜精品美女毛片视频| 国产精品国产三级国产aⅴ入口| 精品粉嫩aⅴ一区二区三区四区| 在线免费一区三区| 99久久婷婷国产综合精品电影| 国产一区日韩二区欧美三区| 国产一区二区三区久久久| 91美女在线视频| 久久国产尿小便嘘嘘尿| 亚洲一区中文日韩| 亚洲精品欧美在线| 国产一区二区导航在线播放| 国产91精品露脸国语对白| 91精品国产乱| 久久精品国产亚洲高清剧情介绍| 日韩欧美黄色影院| 美女一区二区三区在线观看| 日本强好片久久久久久aaa| 国产成人免费视频一区| 久久精品夜色噜噜亚洲a∨| 日韩国产欧美视频| 91精品国产入口| 久久99精品久久只有精品| 久久久久久久久蜜桃| www.色综合.com| 奇米四色…亚洲| 一区在线播放视频| 欧美日本在线看| 国产在线不卡一卡二卡三卡四卡| 国产精品国产三级国产| 9191成人精品久久| 成人免费视频播放| 婷婷久久综合九色国产成人| 久久久久久久国产精品影院| 在线视频国内一区二区| 亚洲高清视频中文字幕| 久久伊99综合婷婷久久伊| 在线免费观看成人短视频| 人人超碰91尤物精品国产| 自拍视频在线观看一区二区| 亚洲精品在线免费观看视频| 欧美三级中文字| 成人高清在线视频| 国产成人综合亚洲网站| 婷婷久久综合九色综合伊人色| 亚洲欧洲日韩一区二区三区| 欧美成人伊人久久综合网| 欧美情侣在线播放| 日本韩国视频一区二区| 国产乱码精品一区二区三区五月婷| 亚洲电影在线免费观看| 亚洲欧美一区二区三区国产精品| 久久品道一品道久久精品| 欧美精品粉嫩高潮一区二区| 91丨九色丨国产丨porny| 亚洲色图一区二区| 亚洲国产精品精华液2区45| 91精品国产品国语在线不卡| 色婷婷综合久久| 国产精品123| 日av在线不卡| 日韩电影在线一区二区三区| 国产精品国产三级国产a| 精品国产一区二区亚洲人成毛片 | 久久精品亚洲麻豆av一区二区 | 欧美狂野另类xxxxoooo| av电影一区二区| 国产成人一级电影| 丰满亚洲少妇av| 成人美女在线观看| 成人小视频免费观看| 成人在线综合网站| 成人激情黄色小说| 91女人视频在线观看| 91网站在线播放| 在线一区二区视频| 欧美另类videos死尸| 欧美视频在线不卡| 欧美日韩电影在线| 欧美色图免费看| 欧美区在线观看| 日韩欧美一区二区视频| 精品日韩一区二区三区| 久久久久久久免费视频了| 国产亚洲综合在线| 亚洲品质自拍视频| 性欧美大战久久久久久久久| 日韩精品电影一区亚洲| 免费不卡在线观看| 精品亚洲国内自在自线福利| 国产精品亚洲专一区二区三区| 成人污视频在线观看| 91福利国产精品| 91精品国产综合久久精品| 国产亚洲成av人在线观看导航| 国产精品不卡视频| 亚洲国产欧美在线| 国产伦精品一区二区三区在线观看| 成人午夜av电影| 日韩欧美在线影院| 亚洲欧美一区二区在线观看| 青青草视频一区| aaa欧美日韩| 日韩精品一区二区三区在线观看| 中文字幕亚洲在| 日本在线不卡视频| 懂色av噜噜一区二区三区av| 欧美日韩视频一区二区| 国产欧美一区二区在线观看| 亚洲成人激情综合网| 国产99精品国产| 91精品视频网| 一区二区三区四区蜜桃| 国产成人综合精品三级| 日韩一级成人av| 亚洲国产日韩a在线播放性色| 国产一区二区三区免费看| 欧美电影一区二区三区| 亚洲欧洲综合另类在线| 国产91在线|亚洲| 欧美va亚洲va在线观看蝴蝶网| 亚洲另类中文字| 国产一区二区三区av电影| 欧美丰满少妇xxxxx高潮对白| 中文字幕中文字幕一区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美夫妻性生活| 亚洲成a人在线观看| 91在线porny国产在线看| 国产亚洲一区二区在线观看| 黄色小说综合网站| 日韩欧美国产精品| 琪琪久久久久日韩精品| 在线成人小视频| 亚洲18女电影在线观看| 欧美日韩国产一级二级| 亚洲第一av色| 欧美日韩国产成人在线免费| 亚洲国产日日夜夜| 欧美日韩精品专区| 日日噜噜夜夜狠狠视频欧美人| 欧美日韩国产综合久久| 日本亚洲三级在线| 日韩一卡二卡三卡四卡| 免费成人美女在线观看.| wwww国产精品欧美| 国产麻豆一精品一av一免费| 久久九九国产精品| 高清在线不卡av| 欧美国产日韩精品免费观看| 丁香另类激情小说| 日韩伦理电影网| 欧美伊人久久久久久午夜久久久久| 亚洲成a人片在线观看中文| 欧美日韩一区精品| 麻豆一区二区三| 国产视频一区二区在线| 99久久伊人精品| 天堂久久一区二区三区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美韩国日本综合| eeuss鲁片一区二区三区在线看| 国产精品女同一区二区三区| 在线亚洲高清视频| 狠狠网亚洲精品| 一区二区中文视频| 欧美久久一区二区| 中文幕一区二区三区久久蜜桃| 不卡的av中国片| 亚洲午夜精品一区二区三区他趣| 日韩一级黄色大片| 91性感美女视频| 亚洲午夜视频在线| 久久综合色综合88| 91免费视频观看| 久久精品99久久久| 亚洲欧美另类小说| 欧美一区午夜精品| 91玉足脚交白嫩脚丫在线播放| 丝袜美腿成人在线| 国产日韩视频一区二区三区| 在线亚洲+欧美+日本专区| 国产精品综合在线视频| 亚洲一区二区三区在线看| 久久久久久久免费视频了| 欧美视频日韩视频在线观看| 国产乱淫av一区二区三区| 日韩精品一区第一页| 亚洲欧美欧美一区二区三区| 精品国产伦一区二区三区观看方式 | 国产日韩一级二级三级| 欧美日韩日日骚| 成人黄色免费短视频| 美女免费视频一区二区| 亚洲一区二区在线视频| 国产精品久久精品日日| 久久免费美女视频| 欧美一区二区三区四区五区| 欧美影院午夜播放|