爲你的Server綁定網域(domain)

瀏覽器:天龍A呼叫天龍B,ip在xxx.xxx.xx.xx上的某某Server,你在那裡嗎?在的話請回答我。
某某server:在阿在阿,我alwayls availiable的拉。你那邊也接收得到我吧?
瀏覽器:恩,可以,我傳個測試資料給你。
某某server:喔!我接到你的測試資料了,我們之間的網路連線沒有問題,可以開始傳輸了。

於是瀏覽器 跟 某某Server就開始進行資料傳輸。因為在傳輸之前透過這樣的程序確認彼此之間的連線是已經建立完成的,才開始傳送要傳送的資料,所以可以確定資料的交換是能成功的。

這也代表當瀏覽器想要連線到某台伺服器時,瀏覽器必須要知道該伺服器在網路上的位置 - ip。 但,這不對啊?我們平常上網都是輸入網址,並不是輸入ip,那瀏覽器怎麼知道伺服器的ip?

從網域裡可以查出ip - DNS lookups

DNS - Domain Name System,是今天網際網路的基礎建設之一,當我們在瀏覽器上輸入一個網址按下Enter之後,背後其實發生了這些事情:

  1. 電腦將這個網址上的網域名稱擷取下來,傳送到提供你網路服務的業者(ISP),就台灣來說就是中華電信。
  2. 那個ISP那邊有一套像是電話簿一樣的系統,記錄著每個網域對應的ip位置。
  3. 如果這個ISP那邊找不到這個網域對應的ip位置,它會把他pass給其他的ISP業者(可能是其他國家的ISP業者)。
  4. 只要一找到該網域對應的ip位置,這個ip就會返回給瀏覽器。
  5. 瀏覽器就可以透過這個ip位置與目標伺服器準備進行連線,用的就是上面提到的http的三方交握。

所以網域只是ip位置的一個轉換而已,身為人類,你不會想上某個網站的時候,還要記那些ip數字,所以我們才需要網域,使用一些有意義的文字,或是我們的品牌名稱來做為我們的網域名稱。

之前雖然我說過盡量不要讓人知道你的主機的ip位置...

到GoDaddy上買個網域吧

前往Digital Ocean上VPS的主控台,做好DNS setting

  1. 左邊選擇Networking,在這個欄位裡填上剛剛在GoDaddy上買好的網域名稱,按下右邊的Add Domain之後會到設定A指向的頁面。 enter_your_domain

  2. 設定A指向的@:在A指向的tab裡的HOSTNAME欄位裡打上一個@,這個@就是代表我們在GoDaddy上買好的網域名稱[2],然後右邊的欄位裡選好綁定了這個domain的VPS, 下拉選單帶出來的VPS會跟現在是在哪個project底下有關係,不過我們現在只有一個project跟一台VPS,所以應該不可能會選錯。再按下Create Record a_direction_at

  3. 設定A指向的www:在A指向的tab裡的HOSTNAME欄位裡打上一個www,然後右邊的欄位裡選好綁定了這個domain的VPS,下拉選單帶出來的VPS會跟現在是在哪個project底下有關係,不過我們現在只有一個project跟一台VPS,所以應該不可能會選錯。再按下Create Record a_direction_www

  4. 做完上面的兩個步驟後,這個頁面底下應該會有這五個記錄 !dns_record.png NS的那三筆是我們在1.的時候一打上我們的網域名稱時,Digital Ocean就幫我們自動補上了,再加上我們自己設定好的兩個A指向紀錄,總共有5筆。 可以看到Hostname一個有www, 一個沒有, 這可以讓我們之後的網站在網址省略www的情況下,一樣能連線到。

回GoDaddy上設定

儲存之後等10分鐘

等候ISP更新DNS

先前說到ISP那邊會有一個類似電話簿那樣的機制去記錄網路上的ip對應的網域,現在我們更新了我們主機的ip對應的網域,ISP那邊會做一個重新索引,以讓別人在瀏覽器上網址列輸入我們新買並設定好的網域之後,會自動連線到我們的VPS上。這個過程會花上5分鐘~24小時~~~

查證是否一切設定正確

more reference

  1. 知名的CDN業者像是 cloudflare
    IP洩漏,被人盯上的話可能會被人DDOS攻擊,俗稱被D(我覺得這詞很好玩,所以特別寫出來)
    2018年6月中文世界裡很有名的JS技術部落客 - 阮一峰,他的部落格就被D到主機當機,他寫下了一篇很詳細很值得參考的紀錄
  2. 更多訊息可見StackExchange上的ServerFalut的這則討論

-- end of file--