OpenResty Edge 内建权威 DNS 服务器,让您无需依赖第三方服务商即可直接托管域名解析。在 Admin 控制台中,您可以添加多种类型的 DNS 记录(A、AAAA、CNAME、MX、TXT、NS、CAA、SRV 等),按地域或 CIDR 网段对每条解析做地理智能派发,并配置主备记录与自动健康检查,只返回可用的解析结果。本教程将演示如何在 OpenResty Edge 中配置 DNS 记录与地理派发规则、用 dig 验证,并将域名的名称服务器委派给 OpenResty Edge。

如何在 OpenResty Edge 中添加 DNS 记录

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

OpenResty Edge Admin Web 控制台——样本部署

进入 DNS 应用管理界面。

进入 OpenResty Edge Admin 的 DNS 应用管理界面

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

openresty.net DNS 应用的总览

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

展示各地域解析情况的 DNS 记录映射图

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

在 DNS 应用中选择不同子域名

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

用于开关 DNS 映射图的切换按钮

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

列表中新增的一行 DNS 记录

列表中新添加的 DNS 记录行

可以选择记录的类型。

选择 DNS 记录类型(A、AAAA、CNAME、MX、TXT、NS、CAA、SRV)

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

输入记录子域名,例如 blog

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

限定允许解析该记录的客户端地址

“Any” 表示不进行限制。

选择 Any 表示不做客户端限制

通过 CIDR 进行限制。

按 CIDR 网段限制解析

例如 192.168.1.1/24。

输入 CIDR 网段,例如 192.168.1.1/24

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

为记录选择地域,例如新加坡

这里我们不进行限制。

该记录不做任何客户端限制

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

直接输入解析结果 IP 地址

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

选择 OpenResty Edge 的某个网关集群作为解析结果

例如 “aws-london”。

选择 aws-london 网关集群

这个是记录的过期时间。

设置记录的过期时间(TTL)

可以选择不同的单位。

为记录 TTL 选择时间单位

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

在主记录与备用记录之间切换

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

为 DNS 记录开启健康检查

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

点击 Add 保存 DNS 记录

如何用 dig 测试 DNS 记录

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

查看所配置 DNS 记录中的网关节点 IP

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

以 .240 结尾的网关节点 IP

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

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

dig 输出证实解析 IP 与所选网关集群一致

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

再次点击 “Add” 按钮。

添加第二条 DNS 记录

输入域名 “blog”。

为第二条记录输入域名 blog

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

选择 aws-us-east 网关集群

点击添加这条记录。

保存第二条 DNS 记录

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

blog.openresty.net 现在解析到两条 DNS 记录

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

这个 IP 地址以 .84 结尾。

以 .84 结尾的 aws-us-east 网关集群 IP

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

可以看到,结果正确。

dig 证实第二条记录返回预期解析结果

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

基于地理位置自动生成 DNS 方案

如何将域名委派给 OpenResty Edge 的权威 DNS 服务器

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

选择 “Authoritative DNS Servers”。

打开 Authoritative DNS Servers 标签页

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

配置 SOA 记录的结果

接着我们以某个域名注册商为例,演示如何将域名的名称服务器委派给 OpenResty Edge。下面的截图使用的是 Google Domains,该服务现已停止运营并迁移至 Squarespace;不同注册商的 glue record 与自定义名称服务器配置步骤基本一致。各注册商的最新操作步骤,可参阅 OpenResty Edge 文档(以 Namesilo 为例)。

以某个域名注册商为例将名称服务器委派给 OpenResty Edge

选择 “DNS” 标签页。

在注册商处选择 DNS 标签页

选择 “Global DNS settings”。

打开 Global DNS settings

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

添加 glue record,填入域名和 OpenResty Edge 节点 IP

回到前一个页面。

返回前一个页面

接着选择 “Custom name servers”。

选择 Custom name servers

点击 “manage name servers”.

打开名称服务器管理对话框

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

输入在 Global DNS Settings 中配置的名称服务器

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

切换到自定义域名服务器

您已经成功在注册商处完成了向 OpenResty Edge 的委派。

在注册商处成功完成名称服务器委派

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

这个 “User Group” 是用于访问控制的。关于如何限定谁能管理各个 DNS 应用的完整演示,请参阅在 OpenResty Edge 的 Admin 控制台中管理 DNS 应用的访问权限

用于 DNS 访问控制的 User Group 标签页

常见问题

OpenResty Edge 自带权威 DNS 服务器吗?

是的。OpenResty Edge 内建权威 DNS 服务器,所有记录都在 Admin 控制台中添加和管理,每条记录都可以直接解析到您的某个 OpenResty Edge 网关集群。

OpenResty Edge 能根据客户端所在地域返回不同的解析结果吗?

可以。每条 DNS 记录都能按地域或 CIDR 网段限定,从而把用户引导到最近的网关集群。您还可以基于地理位置自动生成 DNS 方案,无需逐条手动添加。

OpenResty Edge 如何实现 DNS 故障切换?

每条记录都可设为主记录或备用记录,OpenResty Edge 会持续对目标做健康检查。当主记录缺失或健康检查失败时,会返回备用记录,从而只返回可达的地址。

关于 OpenResty Edge

OpenResty Edge 是一款专为微服务和分布式流量架构设计的全能型网关软件,由我们自主研发。它集流量管理、私有 CDN 构建、API 网关、安全防护等功能于一体,帮助您轻松构建、管理和保护现代应用程序。OpenResty Edge 拥有业界领先的性能和可扩展性,能够满足高并发、高负载场景下的苛刻需求。它支持调度 K8s 等容器应用流量,并可管理海量域名,轻松满足大型网站和复杂应用的需求。

如果你喜欢这个教程,请订阅这个博客网站和我们的 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. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

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