参考:https://www.nginx.com/blog/dns-service-discovery-nginx-plus/
haproxy参考:https://www.haproxy.com/blog/dns-service-discovery-haproxy/
另外的解决办法是修改了DNS解析后,进行nginx -s reload重启操作
最简单的解决方法,我想到如下几种:
执行 nginx reload
这种方法优缺点都很明显:
优点:操作简单。
缺点:属于我们常说的后手,需要做好监控。
配置resolver
可以通过在nginx中配置resolver来动态更新解析,大致做法如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
server { listen 80;
server_name ligang.gdemo.com;
resolver 8.8.8.8 valid=60s;
resolver_timeout 3s;
set $gproxy "ligang.proxy.gdemo.com";
location / {
proxy_pass http://$gproxy;
}
}
|
这个方法优缺点如下:
优点:解析地址每隔一段时间自动更新,无需人工做 nginx reload 。
缺点:需要指定DNS服务器地址,如果这个服务器挂了,或是地址变了,则需要修改nginx配置后reload。