nginx 反向代理 proxy_pass DNS 缓存问题
有个项目用 nginx 配置了反向代理,
location / { proxy_pass http://d.example.com:8080; }
其中 d.example.com 是动态解析的域名. 用了几天之后发现一个问题, 动态域名更改 IP 后, nginx 还是发送到旧的 IP. 从 error 日志看到错误. 查了下官文的文档, 原来是 nginx 启动加载配置文件时, 会把域名解析成 IP, 也就是域名只被解析一次. 网上搜了一下有网友指出用变量代替直接写域名的方法, 经测试方法可行.
# 动态解析域名必须配置 resolver 域名服务器, valid 是缓存 dns 过期时间 resolver 8.8.8.8 valid=30s; # 把域名写到变量 set $my_host "http://d.example.com:8080"; location / { proxy_pass $my_host; }
转自:https://blog.csdn.net/afeiqiang/article/details/105129798