OpenResty Edge 可以直接作为权威 DNS 服务器使用。在这个教程中,您将学习到如何在 OpenResty Edge 中配置 DNS 记录以及基于地理位置的 DNS 派发规则。

添加 DNS 记录

让我们进入 OpenResty Edge 的 Admin Web 控制台。这是我们控制台的样本部署。每个用户都有自己的本地部署。

Screenshot

进入 DNS 应用管理界面。

Screenshot

点击 “openresty.net” 应用,看实际使用中的 DNS 应用是如何配置的。

Screenshot

首先可以看到 DNS 记录映射图,它直观地展示了不同地域的解析情况。

Screenshot

可以在这里选择不同的子域名。

Screenshot

通过这个开关可以开启或关闭映射图。

Screenshot

点击添加 DNS 记录按钮后,在列表中会出现一行新的记录。

Screenshot

Screenshot

可以选择记录的类型。

Screenshot

输入记录的子域名,例如 “blog”。

Screenshot

可以限定只能特定的客户端地址解析到这条记录。

Screenshot

“Any” 表示不进行限制。

Screenshot

通过 CIDR 进行限制。

Screenshot

例如 192.168.1.1/24。

Screenshot

还可以限定地域,例如 “新加坡”。

Screenshot

这里我们不进行限制。

Screenshot

这里是解析结果,可以直接输入 IP 地址。

Screenshot

也可以选择 Edge 的网关集群。

Screenshot

例如 “aws-london”。

Screenshot

这个是记录的过期时间。

Screenshot

可以选择不同的单位。

Screenshot

这里是主备记录的开关,当没有主记录或者主记录健康检查失败时,将会使用备用记录。

Screenshot

同时 Edge 还支持 DNS 记录的健康检查,可以避免返回不可用的结果。

Screenshot

配置完成点击 “Add” 按钮。

Screenshot

测试 DNS 记录

接着我们来看下刚才配置的 DNS 记录中网关节点的 IP 地址。

Screenshot

可以看到 IP 地址是以 .240 结尾的。

Screenshot

接着使用 dig 命令进行 DNS 查询。

可以看到返回的正是我们刚刚选择的网关集群中的网关节点的 IP 地址。

Screenshot

当需要返回多个结果时,可以添加多条 DNS 记录。

再次点击 “Add” 按钮。

Screenshot

输入域名 “blog”。

Screenshot

选择另一个网关集群 “aws-us-east”。

Screenshot

点击添加这条记录。

Screenshot

现在有两条关于 “blog.openresty.net” 的 DNS 记录。

Screenshot

接着再次来到 “Gateway Cluster” 界面,检查 “aws-us-east” 网关集群的 IP 地址。

这个 IP 地址以 .84 结尾。

Screenshot

然后再次使用 “dig” 命令进行查询。

可以看到,结果正确。

Screenshot

您毋需手动创建所有的 DNS 记录。点击这个按钮,您可以基于地理位置自动生成一个 DNS 方案。

Screenshot

配置权威 DNS 服务器

接下来继续介绍 DNS 的配置。

选择 “Authoritative DNS Servers”。

Screenshot

这里的配置即是 SOA 记录的结果。

Screenshot

接着我们以 Google Domains 为例,演示如何将 DNS 域名服务器解析到 Edge 上。

Screenshot

选择 “DNS” 标签页。

Screenshot

选择 “Global DNS settings”。

Screenshot

添加 glue record,输入域名及 Edge Node 的 IP 地址。

Screenshot

回到前一个页面。

Screenshot

接着选择 “Custom name servers”。

Screenshot

点击 “manage name servers”.

Screenshot

输入前面在 “Global DNS Settings” 中配置的域名

Screenshot

最后点击这个按钮切换到自定义的域名服务器。

Screenshot

您已经成功配置了 Google Domains.

Screenshot

我们回到 Edge Admin 界面继续介绍 DNS 的配置。

这个 “User Group” 是用于访问控制的。

Screenshot

如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道B 站频道。谢谢!

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文)。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!