Nginx resolver指令valid参数疑问:IP变更处理与缺省行为咨询
Nginx Resolver配置疑问解答
场景与当前配置
我使用Docker Compose部署Nginx与Node.js应用,重建Node.js应用时其IP会发生变化,因此配置了如下resolver规则:
resolver 127.0.0.11 valid=10s; server { location /api/ { set $backend_servers nodejs_app; proxy_pass http://$backend_servers:8080; } }
核心疑问解答
1. 若nodejs_app的IP在valid=10s有效期内变更,且无法连接旧IP,服务是否会中断10秒?
不会。valid=10s仅控制正常场景下DNS解析结果的缓存时长,当Nginx尝试连接旧IP失败时,会立即触发重新DNS解析,获取最新的IP地址,不会等到10秒缓存过期后才更新。
2. 若不指定valid参数,Nginx会使用DNS的TTL,还是会始终尝试解析?
如果不设置valid参数,Nginx会严格遵循DNS响应中的TTL(生存时间)值来管理缓存。只有当缓存的TTL过期后,Nginx才会重新发起DNS请求获取新的解析结果,不会无差别地始终尝试解析。
内容的提问来源于stack exchange,提问作者Bek
相关产品推荐
相关产品推荐

