綁定域名到 GitHub Pages

GitHub Pages 綁定來自阿里雲的域名

簡介

我在阿里雲上註冊了一個新域名:yuanzb.com,我已經在GitHub Pages上建立了自己的博客:http://yuanzb.github.io/yuanzb/。現在我希望將yuanzb.com映射到http://yuanzb.github.io/yuanzb/。主要參考資料:

  1. Setting up a custom domain with GitHub Pages
  2. 創建GitHub技術博客全攻略 - 第九部分:CNAME綁定域名
  3. Hexo在github上構建免費的Web應用 - 第4.3節:設置域名

第一步:創建CNAME文件夾

在你的個人博客倉庫的根目錄中新建文件CNAME(注意沒有後綴),在該文件增加一行文字,告訴Github Pages服務器你想指定的域名。該域名不能包含前綴信息,即不能添加http:\\前綴。

 

!重要補充!CNAME文件名一定要大寫,否則Github Pages服務器無法識別和解析。我就出現了這樣的問題。我的CNAME綁定域名是正確的,通過ping yuanzb.comping yuanzb.github.io兩條指令,我發現了他們都指向同一個IP地址(即我的博客IP地址),可是我在使用瀏覽器訪問的時候,會出現Site not Found提示,這個時候我就只能合理的懷疑Github Pages服務器根本就沒有把yuanzbyuanzb.github.io綁定起來,即我的CNAME文件設置錯誤。Google之後發現CNAME文件名的大小寫會產生影響(My custom domain isn't working),萬惡的Windows系統不區分文件名大小寫,所以即使你在本地更改了CNAME大小寫然後push到github,還是沒有用。。。我就只好到github上去修改成大寫了。。。坑。。。

每個CNAME文件能且只能指定一個域名。更多關於增加CNAME文件的信息可見Adding a CNAME file to your repository

第一步的目的是,Github讀取你的CNAME之後,Github服務器會設置yuanzb.me爲你的主域名,然後將yuanzb.github.io重定向到yuanzb.com

第二步:CNAME綁定域名

登錄阿里雲單域名控制檯,在域名解析中添加如圖所示的解析

默認使用阿里雲提供的萬網DNS服務器。當然你也可以使用DNSPOD提供的DNS服務器,這樣可以使你的域名在國外更快速的傳播。當你使用DNSPOD提供的DNS服務器時,除了DNS服務器不一樣以外,其他的設置(比如A記錄和CNAME記錄)均相同。以下我們簡要分析我們所添加的A記錄和CNAME記錄的含義。

在域名解析中,A記錄就是直接指定一個IP,CNAME就是重命名,指向另一個域名。

  1. 在阿里雲控制檯,設置主機記錄www,記錄類型爲A,記錄值是IP192.30.252.153。其中192.30.252.153是Github Pages服務器指定的IP地址,訪問該IP地址即表示訪問Github Pages。
  2. 在阿里雲控制檯,設置主機記錄www,記錄類型爲A,記錄值是IP192.30.252.154。同上。
  3. 在阿里雲控制檯,設置主機記錄@,記錄類型爲CNAME,記錄值是yuanzb.github.io.。表示將http://yuanzb.com這個主域名映射yuanzb.github.io。在這裏千萬不要忘記記錄值中.io後面還有一個點.
  4. 但是很多時候,我們只想將子域名綁定到博客地址。比如如果你想將blog.yuanzb.com(即博客子域名地址,主域名地址是www.yuanzb.com)映射到yuanzb.github.io,那麼在主機記錄中就應該填寫blog,記錄類型爲CNAME,記錄值是yuanzb.github.io。因爲你的主域名已經默認爲yuanzb.com,所以主域名和主機記錄合起來就是blog.yuanzb.com。而且這個時候,你github項目的CNAME文件內容也應該相應的改爲blog.yuanzb.com,因爲你是想將yuanzb.github.ioblog.yuanzb.com綁定起來,而不是和www.yuanzb.com綁定。
  5. 如果你想將www.yuanzb.com(即主域名地址)映射到yuanzb.github.io,那麼主機記錄就是www,記錄類型是A,記錄值是具體的IP地址(在我們這個例子中是192.30.252.153192.30.252.154)。因爲你的主域名已經默認爲yuanzb.com,所以主域名和主機記錄合起來就是www.yuanzb.com

你可以將多個域名都映射到xxxxx.github.io之類的你自己的站點上,但是需要新建不同內容的CNAME文件。

注意,.me已經是頂級域名(和.com.org等域名是同一級的),所以需要使用A記錄進行域名解析。

第二步的目的是,告訴所有DNS服務器,對於yuanzb.me的訪問都會被重定向到yuanzb.github.io

第三步:漫長的等待

要全球解析生效,得等上一會了,也可以先ping一下自己的設置對不對。阿里雲域名服務的工作原理是,在你更新了域名解析之後,首先是阿里的萬網雲解析,然後傳播到各大運營商的DNS服務器,刷新DNS緩存,至此你的域名可以被訪問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章