自從買了 Gandi 網域後,子網域這玩意兒就像健身房會員卡一樣:買了但一直沒用。直到最近朋友想試水溫接案,我才終於有機會動手設定人生第一個子網域。過程中不只學會怎麼設定,還意外補了一課 DNS 各種紀錄的差異,這裡就來跟大家分享我的踩坑與領悟。
進入 Gandi 後台
選擇我的網域,點進 DNS 紀錄區,準備大展身手。
設定 A 紀錄
因為我要讓子網域(例如:project.mydomain.com)直接指向朋友伺服器的 IP(不是網址),所以選擇新增 A 紀錄,把子網域名稱和朋友的 IPv4 地址綁在一起。A 紀錄就是把「名字」對應到「地址」的概念,像是你叫計程車說「我要去台北101」,司機就直接載你到信義路五段7號。
朋友伺服器上的 Nginx 設定
跟朋友確認好 IP 後,進到他伺服器,把 nginx 的 server_name 改成我的子網域,這樣流量才會正確導向。
等待 DNS 生效
TTL 設定完後,耐心等 DNS 傳播,這段時間就像等外送,心情只能用「期待又怕受傷害」來形容。
剛開始看到 A、CNAME、AAAA,腦袋一片問號。後來總算搞懂:
記錄類型 | 功能 | 適用情境 | 必須指向 |
---|---|---|---|
A | 將網域或子網域指向 IPv4 地址 | 你的伺服器只有 IPv4 時 | IP 位址(v4) |
AAAA | 將網域或子網域指向 IPv6 地址 | 你很潮,伺服器有 IPv6 | IP 位址(v6) |
CNAME | 將一個名稱指向另一個名稱 | 多個名稱都要指向同一服務時 | 另一個網域名稱(不能是 IP) |
一開始我想說「子網域要不要用 CNAME?」結果發現 CNAME 只能指向另一個名稱,不能直接指 IP,差點走錯路。這時才明白:A 是直球對決(指 IP),CNAME 是轉個彎(指名稱),AAAA 是進化版(指 IPv6)。
很多人會問:「既然都能指到同一個地方,為什麼不用 CNAME?」
其實如果你有一堆子網域都要指向同一台主機,CNAME 可以讓你只改一個地方就好,省事又省心。但如果你就是要直接對 IP,那 A 記錄才是王道。
不過 CNAME 不能用在根網域(像 mydomain.com),只能用在子網域(像 www.mydomain.com),這點很容易踩雷。
這次幫朋友設子網域,意外補了一課 DNS 紀錄的冷知識。A 記錄適合直接對 IP,CNAME 適合名稱轉名稱,AAAA 則是 IPv6 新潮選擇。下次再有人問我 DNS 怎麼設,我應該可以不用再 Google 了(至少這禮拜還不用)。
「設定 DNS 就像點外送,選對菜單、填對地址,才不會送錯地方。」
說真的,子網域設定看起來很厲害,但實際上動手做了才發現:「欸,原來就這樣?」
有時候工程師的神秘感,其實只是多點勇氣按下『新增』那顆按鈕而已。