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://www.jianshu.com/p/b2df15133d12

http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver

 

喜欢的话给个关注呗

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值