nginx DNS 缓存问题

  • 目前的网络架构 外网---> nginx ---> dns ---> F5 --->应用 dns通过域名解析到两台F5上,而在此过程中F5的应用如果挂了,DNS可以很快的识别到变化 并映射到正确的IP nslookup domain可以看到真实的ip地址 通过查询得知是nginx在第一次解析域名后 会缓存该域名的信息 并且不会消除 解决办法
  1. 用 nginx -s reload进行操作, 缺点:但是真实环境上这种突发情况很多,用定时任务去relaod nginx的配置不够优雅
  2. 原生nginx使用set命令使用变量 该方式 我没有执行成功,具体原因未知
  3. 使用模块ngx_upstream_jdomain 在http配置域中配置DNS服务器,在upstream中按照这个模块的格式配置,支持设置每隔多少秒进行一次解析(抓包分析过设置interval可指定解析间隔),如果解析失败则使用缓存中的上一次解析结果的IP地址访问。

例:

http {

resolver    ip;

upstream test {

    jdomain  www.xxx.com port=8080 interval=10; #指定域名和端口,每隔10秒进行一次解析

}

server {

    listen       8080;

    client_body_buffer_size 10m;

    server_name  localhost;

    location / {

            proxy_pass      http://test;

    }

}

缺点:DNS服务器只能在http配域中全局配置 最终选择了第三种

转载于:https://my.oschina.net/u/1472482/blog/3050321

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值