[jekyll+Github架站]Domain網址客製化

Reading time ~1 minute

##源由

從用Github page site的mis101bird.github.io網址建了個人網站後,經營了快一個月了,也沒有想過要換網址。只是我媽一直嫌,說在搜尋引擎找不到我的個人網站的進入點,就算我之前已經在各大搜尋入口網站註冊過了。我想說不定是因為網址的關係,如果把個人網站改成客製化的domain name(網域名稱),搜尋結果可能會改善…基於這樣的原因,我開始研究如何換址,發現Github還提供了domain name客製化的教學!太棒了,這樣無容量限制又免費的網站空間真的沒問題嗎XD

以下對如何設置客製化domain name做個紀錄。官方教學文檔在這裡,可供大家對照參考。其實改了domain name後,我還沒感覺到什麼流量和搜尋上的變化…唯一的好處只有網址讓人看不出這網站其實是架在Github的。

1) 新增CNAME文件檔

直接在網站repo的根目錄下新增一個CNAME文件檔,裡面寫一個自己客製化的domain name。如果你的repo名稱是用帳號.github.io,也就是所謂的Github page site,則直接在master branch新建CNAME,反之普通的jekyll repo則在gh-pages branch新建CNAME。

github CNAME

是否有設置CNAME成功,可以直接到右邊的setting查看網址是否有改成你CNAME所指定的域名。

2) 在DNS註冊網域名

DNS的工作是將domain name對應到server IP,舉例像我們在瀏覽器輸入的yahoo.com,會被DNS轉成IP: 98.139.183.24。所以我們現在的目標,是在DNS註冊XXX.com,並讓網站repo內的CNAME把XXX.com對應到XXXX.github.io,指到Github的專案後,接下來的就能讓Github自己去處理了。

我們可以在mac的terminal使用dig http://XXX.com指令查看DNS轉址的過程(Window用nslookup指令,只是功能遠沒有dig強大),下面是我設定好後的dig結果。

dig url

由上圖,我們看到 mis101bird.js.org IN CNAME mis101bird.github.io,就是mis101bird.js.org被DNS的CNAME record轉成mis101bird.github.io。DNS不僅能用來解析網域名稱與IP,還可以回應很多關於網路和主機的其它訊息。為了要達到這個功能,必需將不同的記錄設定於DNS裡,而這些記錄就是我們所說的RR TYPE(resource record types),目前較常用的有A、MX、CNAME、NS等record。

下面表格為Record 解說,更多資料請參考這裡

紀錄 範例 說明 使用時機
A紀錄 www.abc.com IN A 232.61.23.15 網域名對應IP 假如你架設一個網站,IP位置為203.71.252.13,只要再申請網域名稱,透過DNS代管設定A記錄,網友就可以經由你所申請的網域名稱到達你的網站,如:www.abc.com。
CNAME紀錄 web.abc.com IN CNAME www.abc.com CNAME記錄就好像是A記錄的分身,幫已存在的A紀錄設定別名 設定完A紀錄後,如果你再利用CNAME記錄,就可以為你的網站再取個別名,如:web.abc.com
MX 紀錄 abc.com IN MX 優先序號 Mail-Server 當有人要寄信到xxx@abc.com(域名)的信箱時,會把信先寄到優先序號高的Mail-Server,若Mail-Server無回應才再依序往優先序號低的Mail-Server發信。 假如你架設一台Mail Server,只要再申請一個網域名稱,透過DNS代管設定MX記錄,你就可以使用擁有自己網域名稱的Email Address來收發信件。ex: service@abc.com

Github官方教學提到,如果想要類似XXX.com的apex domain,要在DNS的A,ALIAS,或ANAME record做設定。如果是想要類似www.XXX.com這種subdomain,在DNS設定CNAME即可,官方教學可參考這裡

網路上提供domain name的系統有付費和免費的,如果付費就能客製化自己的網址後綴,免費的話,他會提供固定幾種後綴讓你挑選(ex: XXX.js.org),也因為不用對使用者負責,比較有DNS掛掉的可能性。我在下面介紹一些DNS服務給大家參考。

1. 免費的DNS: dns.js.org

只要申請pull request,把自己的網站repo註冊到cnames_active.js,再請作者合併回專案即可。速度超快也不用自己設定什麼record,只是後綴被限定為js.org了。

2. 付費的DNS: Simple DNS

這個許多人都推,還有提供自動連結github的服務,也能隨意客製化domain name,可說是應有盡有了。

[DevOps]鳳凰計畫

鳳凰計畫:一個IT計畫的傳奇故事,用這本小說作為 DevOps 的入門實在適合不過了! Continue reading