Nginx反向代理在目标是域名的情况下的配置

Nginx 可以做反向代理,如果在做反向代理的时候目标服务是域名,并且域名解析有可能变更的情况下,单纯的使用 proxy_pass

proxy_pass http://domain:port/path

可能会在域名解析变更的时候产生问题。

在 Nginx 启动的时候会做域名解析,然后吧IP缓存起来以后会一直使用解析到的IP并且不会再更改,除非重新启动 Nginx,如果目标服务器采用的类似 AWS ELB 的技术就必然会产生问题。

解决方案如下:

获取服务器的DNS服务器IP

cat /etc/resolv.conf

设置 Nginx

resolver 10.0.0.2 valid=30s;
set $backends "http://domain:port/path";
proxy_pass $backends;

这样每30秒 Nginx 就会重新解析域名

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注