Github Pages/GitCafe pages 可以搭建博客,並且可以綁定域名,是基於什麼原理的呢?

Github Pages/GitCafe pages 可以搭建博客,並且可以綁定域名,是基於什麼原理的呢?如何實現的呢?求解。。。。


大致原理:

1. GitHub/GitCafe Pages 服務會為每個包含 gh-pages/gitcafe-pages 分支的項目創建包含該分支內容的 wwwroot 目錄,這些目錄符合特定命名規則。

2. Web server 被配置為使用 name-based virtual server 方式 publish 所有以上 wwwroot 目錄。這些 virtual server 的域名就包括大家熟知的 {username}.http://gitcafe.io 和 Pages 用戶綁定的任意域名。

3. Pages 用戶將綁定的域名通過 A 記錄或 CNAME 記錄(具體哪個並不重要,CNAME 記錄的好處只在於 GitHub/GitCafe Pages 伺服器變更 IP 時用戶無需修改域名指向)將綁定的域名指向以上 Web server 所在主機,我們所有人就可以像訪問任何普通靜態網站一樣訪問到 Pages 站點。

至於 blog,原本不必是 GitHub/GitCafe Pages 服務的功能。以上原理告訴我們 GitHub/GitCafe Pages 可以將任意靜態頁面內容 host 為一個網站,所以我們可以使用 Jeklly、Ocotopress、Hexo 等任何輸出靜態頁面內容的工具生成 blog 或是普通網站。只是因為這些工具中 Jeklly 最流行且簡潔靈活,GitHub/GitCafe Pages 選擇了直接在伺服器端支持它,在 publish 前對 gh-pages/gitcafe-pages 分支內容執行 Jeklly build。


首先,Github Pages/GitCafe pages 可以搭建博客。

(原理)很簡單,相當於Github提供了一個虛擬的WWW伺服器,你可以訪問靜態的HTML文件。

(實現)這個是一切的基礎,在這個基礎之上,通過一些工具(Hexo之類)將這些HTML文件互相鏈接,並且按照一定的規則存放,這就構成了一個簡單的靜態網站。

其次,可以綁定域名。

(原理)參考 @吳雲州的答案,涉及到了CNAME的概念。簡單的說,就是一個域名的別名。比如說,你想要訪問的域名是A,你現在擁有一個域名B。通過修改域名B的DNS記錄,讓瀏覽器在訪問域名B的時候跳轉到域名A,這樣就實現了綁定域名。

(實現)根據上述的原理,這個實現就非常簡單了。你想訪問的域名A是http://xxx.github.io,你現在擁有一個域名B,只要你修改了域名B的DNS記錄,域名A就從此有了一個新的名字。不過,因為這個域名A是github下屬的一個子域名,所以你必須告訴訪問者哪一個才是你自己的,因此你還要在代碼庫中添加一個CNAME文件。

最後,不負責任的申明:我從來沒有學習過這些知識,上面說的內容全都來自於自己的實踐,如果有不對或者錯誤的地方,請大家一定要提出來~。

可以參考我的博客(基於Github Pages,並且綁定了域名):Xuanwo"s Blog


你先要理解一下 CNAME record 的概念,就是把域名的解析權放到 github 去解析。

比如你的網站是 http://xxx.com ,然後 cname 為 http://xxx.github-pages.com (假設的)。

當有人請求 http://xxx.com 的時候,會到對應的 github 相關子域名去解析,給出合適的 ip,這個 ip 屬於 github,然後 github 根據域名輸出對應的 pages。


作者:劉朋

鏈接:如何搭建個人獨立博客? - 劉朋的回答

來源:知乎

著作權歸作者所有,轉載請聯繫作者獲得授權。

瀉藥。。。。。

果斷是用github pages和hexo來搭建,教程如下:

每個程序員都需要自己的博客

本文的博客搭建採用了靜態博客技術 。

技術框架是:github pages和hexohexo安裝hexo介紹

Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在幾秒內,即可利用靚麗的主題生成靜態網頁。

安裝hexo之前需要先安裝git和node.js

參考網站:文檔 | Hexo

安裝git:

sudo yum install git-core

安裝node.js

Wget:

$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

安裝完成後,重啟終端並執行下列命令即可安裝 Node.js。

$ nvm install stable

安裝 Hexo

所有必備的應用程序安裝完成後,即可使用 npm 安裝 Hexo。

$ npm install -g hexo-cli

github pages的配置

1.新建repo

2.設置名字為http://username.github.io

3.點擊setting,選擇launch automatic page generater,然後點擊continue to layouts,開通pages

配置hexo1.初始化

hexo init folder

cd folder

npm install

2.配置文件

_config文件裡面包含了配置信息

基本的配置信息介紹

網站

參數 描述

title 網站標題

subtitle 網站副標題

description 網站描述

author 您的名字

language 網站使用的語言

timezone 網站時區。Hexo 默認使用您電腦的時區。時區列表。比如說:America/New_York, Japan, 和 UTC 。

網址

參數 描述 默認值

url 網址

root 網站根目錄

permalink 文章的 永久鏈接 格式 :year/:month/:day/:title/

permalink_default 永久鏈接中各部分的默認值

網站存放在子目錄

如果您的網站存放在子目錄中,例如 yoursite.com,則請將您的 url 設為 yoursite.com 並把 root 設為 /blog/。

目錄

參數 描述 默認值

source_dir 資源文件夾,這個文件夾用來存放內容。 source

public_dir 公共文件夾,這個文件夾用於存放生成的站點文件。 public

tag_dir 標籤文件夾 tags

archive_dir 歸檔文件夾 archives

category_dir 分類文件夾 categories

code_dir Include code 文件夾 downloads/code

i18n_dir 國際化(i18n)文件夾 :lang

skip_render 跳過指定文件的渲染,您可使用 glob 表達式來匹配路徑。

3..本地測試

hexo g # 或者hexo generate

hexo s # 或者hexo server,可以在http://localhost:4000/ 查看

hexo部署到github1.安裝擴展工具

npm install hexo-deployer-git –save

2.clone項目到本地

cd

$ git clone clone地址鏈接

3.創建一個deploy腳本文件

http://fengsehng.github.io是我的項目名字

#!/bin/bash
# This is our first script.
hexo generate
cp -R public/* fengsehng.github.io
cd fengsehng.github.io
git add .
git commit -m 「update」
git push origin master

4.大公告成,查看github pages網址:劉朋的天上人間hexo技巧:

在工程目錄下添加插件

添加sitemap和feed插件

npm install hexo-generator-feed

npm install hexo-generator-sitemap

修改_config.yml,增加以下內容

# Extensions
Plugins:
- hexo-generator-feed
- hexo-generator-sitemap
#Feed Atom
feed:
type: atom
path: atom.xml
limit: 20
#sitemap
sitemap:
path: sitemap.xml

另外還有其他幾個常用命令:

hexo new 「postName」 新建文章

hexo new page 「pageName」 新建頁面

參考:

手把手教你使用Hexo + Github Pages搭建個人獨立博客

如何搭建一個獨立博客——簡明Github Pages與Hexo教程

配置 | Hexo

我的微信二維碼如下

http://weixin.qq.com/r/W4317brEb_cQrf6O99hJ (二維碼自動識別)

歡迎關注《IT面試題匯總》微信訂閱號。

http://weixin.qq.com/r/dztQSJTE9cmKrdAr925l (二維碼自動識別)


推薦閱讀:

有哪些github pages開源項目可以用來建博客?
使用 GitHub Pages 來做博客是否道德?

TAG:GitCafe | GithubPages |