1

我有 varnish 4 服务器使用 nginx 作为连接到 ELB 的反向代理。

每 2 天左右我的服务器停止响应,我在 nginx access.log 中看到 499 个响应

重启 nginx 解决了这个问题。

为什么我开始收到这些 499 回复?

为什么重启nginx解决了这个问题?

4

1 回答 1

3

在了解了两个事实后,我解决了我的问题:

1) ELB 实例具有动态 DNS 名称

2) nginx 仅在重新加载/重启时解析 DNS 名称

问题是 ELB 更改了它的 IP 地址,而 nginx 保留了旧的 IP 地址。

解决方案是在 nginx.conf 中使用解析器。这是我的 nginx.conf:

http {  

    resolver x.x.x.x valid=30s;

}

server {

    set $elb "example.com";

    location / { 

        proxy_pass http://$elb; 

        }
}  

解析器 IP 地址应该是 /etc/resolv.conf 中的 DNS 服务器。

于 2016-11-01T09:49:23.073 回答