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. 公司的部落格網站 。也歡迎掃碼關注我們的微信公眾號:

我們的微信公眾號

翻譯

我們提供了英文版原文和中譯版(本文)。我們也歡迎讀者提供其他語言的翻譯版本,只要是全文翻譯不帶省略,我們都將會考慮採用,非常感謝!