0
点赞
收藏
分享

微信扫一扫

nginx日志中出现proxy_pass代理地址timeout

小布_cvg 2023-04-23 阅读 92

背景:

    开发发现测试环境业务异常,影响新需求上线,排查日志中发现nginx日志中出现proxy_pass代理地址timeout报错,直接使用代理地址curl没问题,重启nginx就好了。由于是开发自建自运维的nginx服务器,且出问题当天运维有对服务器进行审计操作,开发便把这口锅甩给我们运维人员!!!

排查问题:

    我们大运维怎么可以随意背锅!!!遂偷偷潜入开发nginx服务器进行问题排查,步骤如下:

1、查看日志报错:

nginx日志中出现proxy_pass代理地址timeout_运维

2、根据日志中的uri信息,查看nginx的location匹配规则,定位proxy_pass转发配置;

nginx日志中出现proxy_pass代理地址timeout_运维_02

3、通过配置的代理地址,可以发现这是一个CDN地址,顿时问题就明了了!知识点:nginx启动和重载时会将代理地址的解析IP缓存下来,如果代理地址的IP解析变更,nginx不会更新解析关系,直到下一次nginx重启;CDN的域名通过CNAME解析,无法保证域名解析不变,所以不建议代理地址使用CDN域名。

4、开发质疑生产为什么没有问题?这是个好问题!!!由于我们使用的是云环境,测试和生产所在的服务器不在同一个可用区,所以CDN解析的IP不一样,变更的节奏也不相同!

总结(解决方案):

1、专业的人做专业的事,nginx应该由运维同学统一管理维护;

2、nginx中的代理地址尽量使用IP+端口号的形式,一定要使用域名的话,记得域名变更后同时重载nginx。

举报

相关推荐

0 条评论