nginx泛域名解析實戰(zhàn)

1. 域名概念

1.1 二級域名

二級域名是指頂級域名之下的域名, 見下面的例子:

  • .com 頂級域名
    • xxx.com 一級域名(你花錢申請的)
      • [www.xxx.com]二級域名
      • blog.xxx.com 二級域名
      • 依次類推…

有幾點需要注意下:

  1. [www.xxx.com是屬于二級域名,不過一般我們把這個域名配置指向一級域名訪問]
  2. [www.xxxxx.com/news這種形式一般稱之為網(wǎng)站的子頁面子目錄等,并不是二級域名]
1.2 域名泛解析

我們的目的是實現(xiàn)訪問二級域名后轉(zhuǎn)發(fā)請求.首先要實現(xiàn)的是二級域名的配置,一般使用Nginx泛解析來處理. 泛解析即利用通配符*來做次級域名以實現(xiàn)所有的次級域名均指向同一IP地址。

泛解析的用途有:

  1. 可以讓域名支持無限的子域名(這也是泛域名解析最大的用途)。
  2. 防止用戶錯誤輸入導(dǎo)致的網(wǎng)站不能訪問的問題。
  3. 可以讓直接輸入網(wǎng)址登陸網(wǎng)站的用戶輸入簡潔的網(wǎng)址即可訪問網(wǎng)站。
1.3 域名類型
image.png
  • 無論記錄類型為啥, 主機記錄都填寫 aaa.xxx.com

  • 主機記錄就是域名前綴,常見用法有:

    • www:解析后的域名為 www.xxx.com
    • @:直接解析主域名 xxx.com
    • *:泛解析,匹配其他所有域名 *.xxx.com
  • 記錄類型的含義是什么?

    • A 記錄:地址記錄,用來指定域名的 IPv4 地址(例如8.8.8.8),如果需要將域名指向一個 IP 地址,就需要添加 A 記錄。

    • CNAME 記錄: 如果需要將域名指向另一個域名,再由另一個域名提供 IP 地址,就需要添加 CNAME 記錄。(github page 就是用的這種)

    • NS 記錄:域名服務(wù)器記錄,如果需要把子域名交給其他 DNS 服務(wù)商解析,就需要添加 NS 記錄。

    • AAAA 記錄:用來指定主機名(或域名)對應(yīng)的 IPv6 地址(例如 ff06:0:0:0:0:0:0:c3)記錄。

    • MX 記錄:如果需要設(shè)置郵箱,讓郵箱能收到郵件,就需要添加 MX 記錄。

    • TXT 記錄:如果希望對域名進行標識和說明,可以使用 TXT 記錄,絕大多數(shù)的 TXT 記錄是用來做 SPF 記錄(反垃圾郵件)。

    • SRV 記錄:SRV 記錄用來標識某臺服務(wù)器使用了某個服務(wù),常見于微軟系統(tǒng)的目錄管理。主機記錄處格式為:服務(wù)的名字.協(xié)議的類型。例如: _sip._tcp。

    • 隱、顯性 URL 記錄:將一個域名指向另外一個已經(jīng)存在的站點,就需要添加 URL 記錄。

  • 記錄值如何填寫?

    • A 記錄:填寫您服務(wù)器 IP,如果您不知道,請咨詢您的空間商。

    • CNAME 記錄:填寫空間商給您提供的域名,例如:2.com。

    • MX 記錄:填寫您郵件服務(wù)器的 IP 地址或企業(yè)郵箱給您提供的域名,如果您不知道,請咨詢您的郵件服務(wù)提供商。

    • AAAA 記錄:不常用,解析到 IPv6 的地址。

    • NS記錄:不常用,系統(tǒng)默認添加的兩個 NS 記錄請不要修改。NS 向下授權(quán),填寫 DNS 域名,例如:ns3.dnsv3.com。

    • TXT 記錄:記錄值并沒有固定的格式,不過大部分情況下,TXT 記錄是用來做 SPF 反垃圾郵件的。最典型的 SPF 格式的 TXT 記錄例子為 “v=spf1 a mx ~all”,表示只有這個域名的 A 記錄和 MX 記錄中的 IP 地址有權(quán)限使用這個域名發(fā)送郵件。

    • SRV 記錄:記錄值格式為:優(yōu)先級 權(quán)重 端口 主機名。例如:0 5 5060 sipserver.example.com 。

    • 隱、顯性 URL 記錄:記錄值為必須為整的地址(必須帶有協(xié)議、域名,可以包含端口號和資源定位符)。

  • TTL如何填寫

    TTL即 Time To Live,緩存的生存時間。指地方 DNS 緩存您域名記錄信息的時間,緩存失效后會再次到 DNSPod 獲取記錄值。我們默認的 600 秒是最常用的,不用修改。

    • 600(10分鐘):建議正常情況下使用 600。

    • 60(1分鐘):如果您經(jīng)常修改 IP,修改記錄一分鐘即可生效。長期使用 60,解析速度會略受影響。

    • 3600(1 小時):如果您 IP 極少變動(一年幾次),建議選擇 3600,解析速度快。如果要修改 IP,提前一天改為 60,即可快速生效。

2. 域名配置

2.1 配置泛解析

去域名提供商那里先配置一個泛解析地址,記錄類型為A.域名指向一個IPv4地址.主機記錄設(shè)置為*.記錄值填寫服務(wù)器公網(wǎng)Ip地址.

配置好后稍微等待一下,然后訪問這個域名.可以隨意輸入任何二級域名,訪問到的都應(yīng)該是頂級域名的內(nèi)容.我這里訪問結(jié)果總是Nginx的默認頁面.


image.png

2.2 nginx server_name
nginx http模塊 server模塊的 server_name指令主要用于配置基于名稱的虛擬主機.匹配順序不同結(jié)果不同.

a. 精準的server_name配置,如:

server_name xxx.com www.xxx.com;

b. 以通配符*開始的字符串:

server_name *.xxx.com;

c. 以通配符*結(jié)束的字符串:

server_name www.*;

d. 配置正則表達式:

server_name ~^(?.+)\.xxx\.com$;

匹配順序由上至下,只要有一項匹配以后就會停止搜索.使用時要注意這個順序

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容