我设置了一个NGINX实例,作为几个应用程序的反向代理,每个应用程序都在NGINX配置中作为自己的服务器设置。
目前的配置非常小:
listen 80;
listen 443 ssl;
server_name example.com;
access_log /var/log/nginx/access.log main;
proxy_set_header Host $http_host;
location ~ .*/url1/.* {
allow xx.0.0.0/8;
deny all;
proxy_pass http://aws-balender-cname-url;
}
location ~ / {
proxy_pass http://aws-balencer-cname-url;
}当我检查NGINX访问日志时,其中一个应用程序几乎在同一时间停止工作一次,它的响应主要是499 (客户端关闭请求)响应代码,偶尔还有502和504。所有其他的应用程序都很好。
NGINX错误日志包含以下条目:
上游超时(110:连接超时)
如果我查看驻留应用程序的上游服务器(Microsoft IIS,通过AWS ELB),它看起来很好,没有负载,请求就停止了。
我如何解决这种情况是,重新加载NGINX配置和问题停止发生,但这是一个糟糕的修复。
对问题所在有什么建议吗?或者如何诊断?
链中有什么可能导致问题吗?
发布于 2021-12-27 14:34:32
因为这仍然是一个悬而未决的问题,我已经找到了原因,这就是。
配置中的proxy_pass设置为DNS名称,而不是IP地址。
当nginx启动时,它解析DNS名称并在内部缓存其IP地址,并一直使用它直到下次重新启动。
解决方案是使用带有有效参数的resolver指令。
https://serverfault.com/questions/833466
复制相似问题