免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8429 | 回复: 1
打印 上一主题 下一主题

捉急啊nginx狂飙502错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-04-26 21:52 |只看该作者 |倒序浏览
先摆出服务架构:
A10(硬件设备)做负载均衡,下面挂载11台rs,rs上部署nginx,rs上配置lo:0, 负载均衡的模式类似于lvs的dr模式,关闭arp:
echo "1"> /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1"> /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

nginx上通过外网域名转发(loction + upstream的模式)到后端服务上去,(nginx上开通了外网nat回源)

问题描述:
客户端(android app)一个请求过来:比如http://www.aaa.com/aaa/?index=xxx, 我在nginx将其转发到http://www.bbb.com/aaa/?index=xxx的服务上去,
结果:access_log中出现502的占比高达30%左右,当然大部分还是200,日志如下:
111.14.233.184 - - [24/Apr/2017:14:41:00 +0800] "www.aaa.com" "POST /mstat/report/?index=1493003035 HTTP/1.1" 502 24 "7.000" "7.000" "-" "111.111.111.111:80" "-" "-" "-" "-" "-"
一律是7s的超时,我的proxy_connect_timeout 10s; 设置的是都是10s啊,整个nginx没有任何一个地方设置过7s的超时啊
2017/04/26 21:36:10 [error] 57345#0: *5668043 connect() failed (110: Connection timed out) while connecting to upstream, client: 183.255.207.129, server: www.aaa.com, request: "POST /mstat/report/?index=1493213731 HTTP/1.1", upstream: "http://111.111.111.111:80/mstat/report/?index=1493213731", host: "www.aaa.com:80"

定位过程:
1、怀疑后端服务www.bbb.com服务负载较高,查看没有问题。而且这个服务直接通过www.bbb.com提供给很多其他业务使用都没有问题。
2、怀疑负载均衡设备或防火墙哪里有7s的超时设置,让工程师检查、抓包都没有。
3、nginx机器上的域名解析问题,改成了直接转发到www.bbb.com的ip, ping ip的延时在10ms左右,也没有问题。
4、根据tcp协议四元组:源ip、源端口、目的ip、目的端口的特征,检查了nginx机器是端口范围是net.ipv4.ip_local_port_range = 1024     65535,而且链接数限制是100w+, 没有达到上限,目的ip那里在upsream里面配置了9个vip, 也不可能是这个原因。
5、在nginx机器上抓包:发现用wireshark随便选择一个http.response.code == 502的包,然后右键选择"Follow TCP Stream",无法追究到上游(客户端)是什么时候发给nginx的,只能看到nginx返回给了上游,这是非常奇怪的,抓到的502包,是找不到之前的tcp包流的,也看不到之前上游跟nginx之前的连接建立信息啊,按理来说,能抓到返回包,那肯定能抓到请求包,除非这个返回包是nginx捏造返回的,根本就没有请求过来---很奇怪。然后看了其他业务返回的504,抓包确实也是这样。。。。
6、用http.response.code == 502抓502的包时发现:抓到的502都是nginx服务器返回给用户的,而从nginx日志里面来看,明明是在从nginx转发到后端www.bbb.com的时候出现的502,而从抓包看不到从www.bbb.com回给nginx502这一回包过程,这是怎么回事呢?

麻烦大侠们帮忙看看。

论坛徽章:
0
2 [报告]
发表于 2018-08-24 16:07 |只看该作者
你看看是不是进程数快用完了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP