我有使用nginx的varnish 4服务器作为连接到ELB的反向代理。
我的服务器每两天左右停止响应,我在nginx access.log中看到499个响应
重新启动nginx正在解决问题。
为什么我开始收到这些499回复?
为什么重启nginx解决问题?
答案 0 :(得分:1)
我在理解了两个事实后解决了我的问题:
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服务器。