Nginx开源动态DNS服务发现功能,再也不怕DNS记录不更新了

在现代基础架构中,最核心的一环就是扩展性,也即动态扩展架构,不需要人工干预的负载均衡器成为了必需品。

而DNS就是一种负载均衡器,比如 Nginx 作为一个反向代理的时候,就会去解析本地DNS,获取实际的服务地址。

但传统的DNS有几个问题,本地 Local DNS可能会出现问题,最一种的就是 TTL 更新时间可能很长,导致获取不到最新的记录。

Nginx 为了解决该问题,且考虑到微服务和K8s的普及,开源了一个解决方案,即DNS 服务发现,而且已经集成到 Nginx 中了,原来该功能只能 Nginx Plus 才能使用。

它的核心功能:

  • 可以同时配置多个 DNS 服务器,不管是公共DNS服务器、第三方DNS服务提供商,还是内部DNS服务器。
  • 可以配置更短的 TTL 时间,让DNS记录更新更快。

具体如何配置呢?直接看一个例子:

http {
    resolver 10.0.0.1 valid=300s ipv6=off;
    resolver_timeout 10s;
    upstream backend {
        server backend1.example.com resolve;
        server backend2.example.com resolve;
    }
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

指定 DNS 的配置,比如 TTL 时间和具体的DNS 地址;然后配置一个 upstream service,配置多个 DNS 服务器,最后就是代理到 upstream service。

而旧的解决方案:

http {
    upstream backend {
        server backend1.example.com ;
        server backend2.example.com ;
    }
    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

思考下有什么问题?Nginx 会通过 Local DNS 解析服务,控制能力较弱。

声明: 本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
中间件

Docker 最佳实战:Docker 部署单节点 MariaDB 实战指南

2024-11-29 13:54:32

中间件

elasticsearch-7.17.6集群搭建教程

2024-12-12 17:28:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索