在4月初的一个上午,有多个项目组联系我说测试环境频繁访问出现500错误,让我协助查看一下什么原因 。由于项目的前端部署在nginx上,而且都是部署在nginx的系统出现了问题。后面联系nginx管理员申请账号和密码进入nginx所在的服务器排查问题。其中用下面这几种方式去排查。
1、nginx+keepalived实现高可用,怀疑系统访问的实际nginx是另一台备份nginx服务器(有些项目的配置文件没有同步) ,把其中一台nginx停机 ,经过 排查后发现不是这个原因。
2、查看其中一个系统的错误日志和通过日志,发现共有1G多。(之前有项目组也是遇到这个问题,压力测试时nginx日志内容过多,导致项目出现问题),彻底删除日志,500错误还是出现 。
3、查看nginx的错误日志,发现错误日志已经达到4个G。期间有项目组同事联系我说,昨天下午就偶尔出现这个情况,查看错误日志发现都是访问其中一个系统的错误,因为所有项目都要去调用这个系统的接口去记录相关操作。
4、尝试把所有项目的nginx配置文件备份删除掉,只留其中一个项目的配置文件 ,启动nginx后访问还是会偶尔500错误。检查 nginx错误日志发现 还是有系统在不断的访问那个日志收集系统 。这里我电话联系了那个系统的开发人员,他们说是由于安全原因暂时停机了。中午联系项目组去开启系统应用。
错误日志 内容 :
Too many openfiles;
no live upstreams while Connection to upstream 。。。
其中Too many open files打开的 都是 nginx下面的50X.HTML.
在 upstream访问 后端没有响应(tomcat容器关闭了),怀疑是很多系统请求日志系统记录日志(通过webservice调用)占用了TCP连接数并未断开连接,导致其他项目出现访问500的异常。(把nginx上的所有系统前端都关闭了还是提示图片的错误)。
最后联系日志系统的负责人 开启测试环境的系统,后面全部访问正常了 。