nginx配置自动更新dns缓存

时间:2025-03-09 08:52:23

nginx配置自动更新dns缓存

nginx dns缓存

在nginx中,在第一次dns解析成功后,结果会被缓存,并不会自动更新。域名配置更新后,需要手动重启nginx或重新加载nginx配置,触发后续网络请求进入更新dns。

nginx配置示例

server {
    listen       18080;
    server_name  x.x.x.x;
    # 配置dns解析服务器,并使用valid参数设置dns缓存时间
	resolver 127.0.0.11 valid=10s;
		
		location /xx-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 使用set参数方式定义域名,触发nginx解析。而不是在proxy_pass写死静态域名值
			set $upstream_xx "你的域名";
			# 使用rewrite移除location中匹配的前缀
            rewrite ^/xx-api/(.*)$ /$1 break;
			# 通常的,proxy_pass的配置值,末尾要带/符,使得自动去除匹配的location前缀,并将剩余部分转发给上游服务
            # 注意这里和常规配置不同。使用set动态方式后,会导致proxy_pass解析出非期望效果。因此要结合使用rewrite命令,同时proxy_pass末尾不带/符
			proxy_pass http://$upstream_xx:8089;
		}
}