当前位置: 首页 > news >正文

学院网站建设与管理办法中铁建设中南分公司

学院网站建设与管理办法,中铁建设中南分公司,云南建设网官方网站,1号网站建设 高端网站建设1、问题描述 生产环境Nginx间歇性502的事故分析过程 客户端请求后端服务时一直报错 502 bad gateway,查看后端的服务是正常启动的。后来又查看Nginx的错误日志,发现请求后端接口时Nginx报错no live upstreams while connecting to upstream&#xff0c…

1、问题描述

生产环境Nginx间歇性502的事故分析过程

客户端请求后端服务时一直报错 502 bad gateway,查看后端的服务是正常启动的。后来又查看Nginx的错误日志,发现请求后端接口时Nginx报错no live upstreams while connecting to upstream,查看该错误的解释可以得到的结果是upstream中没有可以提供服务的server,即Nginx已经发现不了存活的后端了,但是,我直接访问后端的server却是可以使用的,证明server端可用。
最后查找文档,发现问题出现在业务上要求保持会话,但是Nginx到后端并没有保持会话,那么,Nginx当然就找不到后端可用服务,就会报no live upstream

参考文档:https://xiezefan.me/2017/09/27/nginx-502-bug-trace/

2、服务架构如下:

+--------+  HTTP   +-------+  HTTP   +-------+
| Client | ------> |       | ------> | API A |
+--------+         |       |         +-------+|       |  HTTP   +-------+|       | ------> | API B ||       |         +-------+|       |  HTTP   +-------+| Nginx | ------> | API C ||       |  HTTP   +-------+|       | ------> | API D ||       |  HTTP   +-------+|       | ------> | API E ||       |  HTTP   +-------+|       | ------> | API F |+-------+         +-------+

3、排查思路

一般讲,Nginx 502就是后端处理不过来,但查看监控后端几个API的负载均很低,当前请求的QPS远远低于服务的上限。而且同一瞬间,多套独立部署的API均处理不过来的概率也比较低。

我们简单做了个对比测试,分别对域名(请求走Nginx)与直接通过IP对内网一个API通过进行小规模压测。

对比测试发现,直接通过域名走Nginx对API进行压测的话,QPS远远小于预期,并且存在大量失败请求。基本断定问题出在Nginx —> API 这条链路上。同时排除了后端服务响应不过来的可能性。网络问题可能性大一点。

一开始我们怀疑云服务商对内网带宽做了限制,我们观察内网带宽达到在200MB/S后就上不去了,所以我们在Nginx机器上ping后端服务,观察一段时间发现有小量抖动,但基本延迟正常。那云服务商对网络做限制的可能性就变小了很多。

我们观察Nginx错误日志:

2023/08/26 14:23:00 [error] 5950#5950: *5172133211 no live upstreams while connecting to upstream, client: xxx.xxx.xxx.xxx, server: api.xx.xxxxxxx.cn, request: "POST /xx/xxxxxx/bidder HTTP/1.1", upstream: "http://xxxxxxxxxx/bidder", host: "api.xx.xxxxxxx.cn"

这里出现no live upstreams while connecting to upstream, 也就说一瞬间Nginx检测不到任何存活的后端服务,而网络又没有大波动,那就可能是TCP链接出问题。打开Zabbix监控发现TCP连接数的确发生剧烈的波动现象。

异常TCP连接数趋势
在这里插入图片描述
这时候问题很明显,Nginx->API这一链路存在大量的TCP链接被回收的情况,我们马上在API机器上查看链接状态

shell > netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
SYN_RECV 	 1
ESTABLISHED 	 656
FIN_WAIT1 	 4
TIME_WAIT 	 153429

TIME_WAIT特别的多,大量的连接被API侧主动关闭了。这说明Nginx->API这一步请求并没有Keep-Alive,我们检查Nginx,确定是配置了Keep-Alive

4、解决办法

修改nginx的配置

  location ^~ /xxxxxx/ {...proxy_http_version 1.1;proxy_set_header Connection "";     //规制强制指定使用1.1协议...
}
http://www.yayakq.cn/news/567157/

相关文章:

  • 江苏省网站备案系统哪个网站可以做担保交易
  • 好利来邢台官方网站开发部网站的优点缺点
  • 国际购物网站有哪些上海微信网站制作哪家专业
  • 手机网站用什么开发好完整网站开发
  • 公司网站运营南昌网站空间
  • 小型电子商务企业网站建设阜新市建设学校官方网站
  • 生态城门户网站 建设动态微信开发者平台怎么注销
  • 中国做的手机系统下载网站专业邯郸网站建设
  • wordpress增加连接池如何给网站做优化代码
  • 南阳网站改版宿迁房产网信息网
  • 天津市建设行业联合会网站绵阳建设局网站皱劲松
  • 网页设计网站多少钱semi final
  • 网站关键词搜索排名生活分类网站建设
  • 优质网站建设的设计要点wordpress 3.9 性能
  • 欧美网站设计风格opensearch wordpress
  • 农业科技工作服务站建站模板怎么才能提高网站点击量 免费
  • 济南做网站互联网公司有哪些什么网站比较容易做权重
  • 用凡科做的网站怎么下载php网站后台管理系统
  • 外发加工网站取消wordpress 黑标题
  • 为什么不能去外包公司seo推广一年要多少钱
  • 学校网站栏目建设做影视网站需要多大硬盘
  • 登录信产部网站wordpress图片浏览
  • 台州响应式建站山门做网站
  • 中国建设银行官网站纪念币登录页面的html代码
  • 只有单页面的网站怎么做seo深情密码免费观看网站
  • 利用论坛推广网站网络专业的网站建设价格
  • 网站建设买阿里云云服务器wordpress页面增加文章
  • 如何判断网站是用织梦做的织梦大气婚纱影楼网站源码
  • 网站制作多少钱?互动教学平台
  • 网站域名续费后SEO查询未更换域名对网站建设有什么影响吗