网站频繁出现502 bad gateway 怀疑是127.0.0.1连接太多
用的是linode的vps,在上面架设了一个discuz论坛和一个wordpress的博客两个站。每天pv两个站加起来大概有九万多,vps的配置是2G内存,所有程序跑满后还能剩余600MB左右,用的web服务端是nginx,从配置后四个月内一直没有问题,最近频繁的502 bad gateway报错。
开始也找不到问题所在,认为是配置环境的问题,于是重新配置了环境,折腾了几次之后发现依然是这样502 bad gateway报错或者根本打不开,检查后台IP连接数,发现有个127.0.0.1这个ip的连接数特别多,每次宕机之前能高于1500的IP连接数。
在这里提问想询问各位大牛究竟问题出自哪里?这么高的连接数出自什么原因,是这个连接数导致的502吗?如何可以解决?
第一次提问,本人新手,冒昧提问,请各位大牛理解。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
502的问题有很多种情况,主要的问题就是nginx->php这一层出现问题,可能是并发问题,也可能是PHP处理能力问题,还有可能是code代码的问题.
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
下面看下我实验的502情况(结构说明: Nginx(proxy)-->Nginx+PHP 表格中说的nginx和PHP都是非proxy):
PS:你的标题应该改改,应该是 "网站频繁出现502,怀疑是127.0.0.1连接太多",把现象先描述出来.
我以前碰到这种问题是因为在nginx后面的web server没有正确完成TCP termination 导致大量的TIME_WAIT/CLOSE_WAIT connection,最后导致open file超过上限。你netstat -ano | grep -E 'TIME_WAIT|CLOSE_WAIT' | wc -l看看是不是很多呢。如果是的话,可以调整linux的参数:
减少TIME_WAIT的timeout时间至30s
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
如果CLOSE_WAIT过多,那就是server实现有bug。