iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
Modern Web

前端來點 AWS 技能樹!系列 第 19 篇

Day19 - 網域與 DNS:讓網站有個好記的名字

  • 分享至 

  • xImage
  •  

昨天認識了 Elastic IP,可以替 EC2 保留固定的 Public IP,讓它停止再啟動後,位址仍然維持不變。
不過,我們平常分享網站,很少會直接傳一串 IP,通常會使用一個好記的名稱。那如果我也想替自己的網站取個名字,讓大家輸入名稱就能找到 EC2,要怎麼做呢?

網域名稱:網址裡那個好記的名字

像 example.com 這類名稱,就被叫做網域名稱(Domain name)。有了這個名稱,我們就能把它放進網址,讓使用者透過這名字找到該網站。
不過,Domain name 只是網址中的一部分。延續之前認識的 port,可以把下面這個網址拆開來看:

http://www.example.com:80/about
部分 代表什麼
http:// 這次使用 HTTP
www.example.com Domain name
:80 要連線的 port;HTTP 使用預設的 80 時可以省略
/about 向網站請求的路徑

這一整串就叫做 URL(網址)。而等一下要介紹的查詢 DNS 時,我們要查的是中間的 www.example.com,所以不用把前面的 http://、後面的 port 和路徑一起填進去。
再來看 Domain name 本身,它是有層次的,從右往左讀可以看到:

  • .com:頂級網域,英文是 Top-Level Domain,簡稱 TLD。
  • example.com:位於 .com 之下的網域。
  • www.example.com:example.com 底下的子網域,也可以用 blog、api 等名字。
    也就是說,www 並不是每個網站都一定要加的字。
    PS. example.com 和 www.example.com 是兩個不同的名稱,要讓它們都能開啟網站,就得有對應的 DNS 與網站設定。
    這裡使用的 example.com 是保留給文件舉例的 Domain,不能拿來註冊喔~

DNS:從名字找到 IP

有了好記的名字之後,還有一件事要處理:瀏覽器要連到我們的 EC2,仍然需要知道它的 IP ,畢竟網址是給我們看的,機器看的是 IP。
這時就輪到 DNS(Domain Name System,網域名稱系統)。DNS 可以查詢 Domain name 對應的資料,而開網站時,我們最常用到的就是查出這個名稱對應的 IP,這個過程叫做名稱解析。
可以把它想成之前查電話簿的時候一樣。我們先找到要聯絡人的名字,看他的電話號碼,再撥電話給對方。開網站也是類似的流程:先查出 IP,接著才連到那個位址取得網頁。
不過,這份「電話簿」很大,資料也分散在不同的電話簿上,所以通常會由 DNS 解析器(Resolver) 幫我們找答案。解析器可能由網路業者提供,也可能是電腦或瀏覽器另外設定的 DNS 服務。
之後當自己的 Domain 設定成直接指向 EC2 的 EIP,流程就會像這樣:
https://ithelp.ithome.com.tw/upload/images/20261003/20179793qiK2X512PG.png
DNS 解析器把 IP 告訴瀏覽器後,接下來的 HTTP 請求就交給 EC2 處理。負責回答名稱查詢的服務,和實際回傳網頁的主機,可以放在不同地方。

解析器怎麼知道答案?

如果解析器之前查過相同的資料,而且留下來的答案還能用,就可以直接回覆。這種暫時保存下來、讓下一次查詢重複使用的資料,叫做快取(Cache)。

那如果沒有可用的 cache 呢?以查詢 www.example.com 為例,解析器會沿著 Domain 的層次,一步一步找到負責回答的地方:

  1. 先詢問根名稱伺服器(Root nameserver),取得 .com 名稱伺服器的資訊。
  2. 再詢問 .com 的 TLD 名稱伺服器,取得負責 example.com 的名稱伺服器資訊。
  3. 最後詢問 example.com 的權威名稱伺服器(Authoritative nameserver),由它依管理的 DNS 資料回答。
    這裡的「權威」,指的是它負責管理、回答這個範圍的 DNS 資料。解析器找到答案後,再把結果交回來。實際查詢會利用 cache,所以不一定每次都得從 root 開始問一輪。

查一次名稱對應的 IP

前面說的名稱和 IP 對應,會記在 DNS 的 A 記錄裡。A 記錄是用來把一個名稱對應到 IPv4 位址,也就是之後我們就會把 EC2 的 EIP 填在這裡。
現在先用大家都熟悉的 www.google.com 練習,不需要啟動 EC2。macOS 可以在自己電腦的終端機使用 dig就可以了:

dig www.google.com A +short
  • A 表示查詢 IPv4 記錄
  • +short 則只顯示精簡結果。
    這次看到的 IPv4 可能不只一個,也可能因查詢時間或位置而不同。這些是 www.google.com 的查詢結果,並不是自己的 EC2 位址。
    而 Windows 可以在 PowerShell 使用:
nslookup -type=A www.google.com

看後面 www.google.com 的答案即可;開頭的 Server/Address 是這次詢問的 DNS 伺服器。

今天知道名字怎麼找到 IP 了,下一篇就來看看自己的網域要去哪裡取得,以及怎麼設定 DNS,讓它指向我們的 EC2 ㄅ!

參考資料


上一篇
Day18 - Elastic IP:替 EC2 保留固定的公網 IP
系列文
前端來點 AWS 技能樹! 共 19 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言