http status code 500的一次排查经历

1,http status 5xx 一般就是服务器端的问题,所以直接定位服务器存在什么问题

2,正常情况下,可以通过nginx日志,例如access_log,error_log,最后可以根据日志信息定位问题,例如:https://cloud.tencent.com/developer/article/1467799 这篇文章示例定位过程

3,但是我遇到的问题是:nginx没有日志,目标service下也没有日志

4,猜想,nginx可能有什么设置上的问题。

5,结果是:方法1,通过各种查阅nginx config内容 发现:nginx下B服务config,占用了A服务下config的http接口,导致A服务的http接口的流量导入到B服务,而B服务还没有日志。调整nginx 下A服务和B服务的接口config,即为解决
方法2,设置全局nginx access_log,看这个全局的日志,避免有的项目没有设置日志的问题

6,反思:1,当服务很多的情况下,有可能存在面向app端的服务,和面向管理平台的服务,属于同一业务场景,可能会出现接口定义冲突的情况,所以服务命名的时候还是要尽可能准确,这样就有可能避免服务接口相同,在一个服务器上部署的时候冲突问题

原文地址:https://www.cnblogs.com/woshare/p/14681941.html