正文
默认情况下,当你在 Nginx 的 proxy_pass 中直接写死一个域名(例如 proxy_pass http://you.end.com;)时,Nginx 只会在启动或重载(reload)配置时解析一次该域名的 IP 地址,当被代理的域名解析的IP地址发生变化时继续使用启动时缓存的IP地址,所以需要在Nginx配置中,通过变量强制每次请求时重新解析域名。
server {
listen 80;
server_name xxx.com;
location / {
resolver 8.8.8.8 valid=10s; # 指定DNS服务器,valid控制缓存时间
set $backend "you.end.com"; # 被代理的域名
proxy_pass http://$backend;
proxy_set_header Host $host;
}
}
关键参数:
resolver:指定 DNS 服务器(如 8.8.8.8 或 114.114.114.114)。
valid=10s:DNS结果缓存10秒后失效,强制重新解析。
set $backend:这是触发动态解析的“开关”。如果省略这一步,直接在 proxy_pass 里写域名,resolver 指令将不会生效。
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Nginx域名动态解析》
文章链接: https://www.sgtms.com/shorthand/151.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
文章名称:《Nginx域名动态解析》
文章链接: https://www.sgtms.com/shorthand/151.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
网友评论抢沙发