日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx 50x故障分析

發(fā)布時間:2025/1/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx 50x故障分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

近期經(jīng)歷了一系列的nginx 50x錯誤,在此總結一下如何處理錯誤,以及各個錯誤可能根源。

錯誤處理提前需要了解

1 代碼發(fā)布時間

2 php error log

3 nginx access log

4 nginx error log

5 每個接口訪問時間log

錯誤處理流程

1. 確認是否有人剛發(fā)過代碼。根據(jù)故障時間線&代碼發(fā)布時間線,如果能找到精確對應關系,基本上可以判定這次事故的原因為代碼發(fā)布事故,回滾代碼往往是解決問題最直接有效的方式。

2. 線上測試服務器,測試接口。線上測試服務器訪問量較小,不存在nginx訪問壓力過大造成的其他隱患,可以直接測試后端的存儲服務器是否有故障。

3. 從日志挖掘有效信息。

3.1 php日志,檢查是否有大量的php報錯信息。

3.2 nginx日志,確定接口開始出現(xiàn)大量50x錯誤的時間點

3.3 接口請求時間日志(自行記錄),查看接口請求時間是否有異常。

3.4 配合xhprof等工具,分析耗時請求的時間分布。

50x原因分析:

分析前需要了解

1. php.ini

2. php-fpm.conf (訪問<?php phpinfo(); 查找"Loaded Configuration File"可以找到php-fpm.conf的位置 php -i | grep PATH | grep php; cd ../etc # 找到php-fpm.conf存儲位置)

3. nginx.conf

504:

1. 在nginx.conf keepalive_timeout時間內(nèi)php-fpm沒有返回結果

2. php-fpm設置的過少,請求過多達到php-fpm.conf pm.max_children

pm = dynamic ; The number of child processes to be created when pm is set to 'static' and the ; maximum number of child processes to be created when pm is set to 'dynamic'. ; This value sets the limit on the number of simultaneous requests that will be ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP ; CGI. ; Note: Used when pm is set to either 'static' or 'dynamic' ; Note: This value is mandatory. pm.max_children = 4096; The number of child processes created on startup. ; Note: Used only when pm is set to 'dynamic' ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 pm.start_servers = 768 ; The desired minimum number of idle server processes. ; Note: Used only when pm is set to 'dynamic' ; Note: Mandatory when pm is set to 'dynamic' pm.min_spare_servers = 512

這里面我覺得最重要的參數(shù)是max_children: 代表了dynamic狀態(tài)下,fpm的最大數(shù)量。

3. nginx請求排隊超時

fpm到達上限,nginx會將fpm放入請求隊列,如果在keepalive_timeout時間內(nèi)始終沒有空閑fpm,返回504

504的access&error log

2013/08/14 20:48:31 [error] 20370#0: *1948283 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 127.0.0.1, server: lv.com.cn, request: "GET /a.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "lv.com" 127.0.0.1 - - [14/Aug/2013:20:48:31 +0800] "GET /a.php HTTP/1.1" 504 183 "-" "curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5"

502原因分析,502錯誤出現(xiàn)的原因一般都不是nginx的問題。

1. php-fpm request_terminate_timeout超時

request_terminate_timeout用于設置當某個php腳本運行最長時間,若超出php-fpm進程管理器強行中止當前程序,并關閉fastcgi和nginx的網(wǎng)絡連接,然后nginx中就會出現(xiàn)Connection reset by peer的錯誤了。

warning: php.ini中的max_execution_time在fpm中一般是不生效的,因為max_execution_time不計入網(wǎng)絡請求,系統(tǒng)請求,對于網(wǎng)絡請求,大部分都是訪問數(shù)據(jù)庫,很少有純粹的計算,因此很難超時。

盲目的延長request_terminate_timeout并不能解決問題,一般對于線上請求1s就已經(jīng)非常長了,所以如果超時,更應該去查找哪個步驟耗時,并優(yōu)化。

2. php-fpm進程出錯

想寫一個將php-fpm出現(xiàn)段錯誤,意外退出也是一件比較難的事情。大部分情況都是因為某些擴展的某些bug。(redis->pconnect遇到過, 如下)

PHP Notice:? Redis::setex(): send of 869 bytes failed with errno=32 Broken pipe in /data/home/xxx.php on line 43

3. php.ini的memory_limit過小

4. nginx.conf client head buffer,fastcgi buffer size過小

nginx錯誤日志: pstream sent too big header while reading response header from upstream

502的access&error log

2013/08/23 17:14:26 [error] 20370#0: *2529767 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 10.18.128.37, server: lv.com.cn, request: "GET /a.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "lv.com" 10.18.128.37 - - [23/Aug/2013:17:14:26 +0800] "GET /a.php HTTP/1.1" 502 575 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17"

參考文獻
http://blog.xiuwz.com/2012/09/25/php-max-execution-time-internal/

http://www.cnblogs.com/zhengyun_ustc/archive/2013/06/06/3120967.html

轉載于:https://www.cnblogs.com/codesay/p/3278717.html

總結

以上是生活随笔為你收集整理的nginx 50x故障分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人福利一区二区 | 午夜影院在线观看 | 欧美一级做 | 国产99久久久久久免费看 | 小早川怜子一区二区三区 | 涩涩999| 91视频观看 | 99久久精品一区二区 | 高潮一区二区三区 | 四季av中文字幕一区 | 青青草原一区二区 | 国产a自拍| wwwav网站| 亚洲色图88| 成年人福利视频 | 欧美一级免费黄色片 | 啪啪免费网 | 成人有色视频 | 久久精品伊人 | 精品国产伦一区二区三区 | 欧美一区二区不卡视频 | 91久久亚洲 | 日本黄色网络 | 日韩在线视频你懂的 | 波多野结衣中文字幕一区二区 | 中国一级特黄真人毛片免费观看 | 亚洲天堂二区 | 美女靠逼app | 欧美中文一区 | 午夜影院免费看 | 先锋影音中文字幕 | 国产性生活网站 | 日韩精品免费电影 | 日日干夜 | 国产精品swag | 91sao | 狠狠躁夜夜躁人人爽天天高潮 | 亚洲麻豆一区 | 久久国内精品 | a级在线看| 一区二区xxx| 在线免费视频你懂的 | 国产精品theporn| 无码精品国产一区二区三区 | 伊人网在线视频观看 | avxx | 亚洲精品国产精华液 | 狠狠躁夜夜躁av无码中文幕 | 久久国产精品系列 | 亚洲国产欧美视频 | 国产激情在线 | 简单av在线 | 日韩av福利| 日韩激情精品 | 夜夜精品一区二区无码 | www.色哟哟 | 荔枝视频污 | 天天爽视频 | 国产精品乱码一区二区视频 | 中文精品视频 | 欧美精品福利视频 | 欧美日韩在线免费视频 | 精品丰满人妻无套内射 | 一区二区三区四区免费观看 | 国产精品黑人一区二区三区 | 日本午夜视频在线观看 | 手机免费看av片 | 天天看夜夜看 | 亚洲美女视频网 | av不卡在线免费观看 | 日本三级视频在线 | 精品国产一区二区三区av性色 | 欧美黄色一级生活片 | 中文字幕在线播放av | av免费入口 | 亚洲一二三区在线观看 | 亚洲电影影音先锋 | 中文字幕11页中文字幕11页 | 少妇高潮一69aⅹ | 成人免费毛片片v | 免费国产黄| 蜜桃av中文字幕 | 久久精品人人做人人爽 | 国产一区二区三区www | 国产精品16p| 亚洲精品成人在线 | 亚洲激情影院 | 国产人成免费视频 | 国产亚洲色婷婷久久99精品91 | 婷婷久久网 | 国产精品久久久久久久一区二区 | 国产一区二区三区在线看 | 日本体内she精高潮 男女视频在线免费观看 | 在线免费看毛片 | 公侵犯人妻中文字慕一区二区 | 日韩在线一区视频 | 天天干夜夜操视频 | 人人舔人人| 狠狠天天 |