hexo干貨系列:(四)將hexo博客同時托管到github和coding

前言


之前我們把hexo托管在github,但是畢竟github是國外的,訪問速度上還是有點慢,所以想也部署一套在國內的托管平臺,之前查資料聽說gitcafe,但是聽說gitcafe已經被coding收購了,所以就決定部署到coding。查詢了多方資料,終于鼓搗出了本地一次部署,同時更新到github以及coding。


正文


_config.yml配置


想要同時部署到2個平臺,就要修改博客根目錄下面的_config.yml文件中的deploy如下
根據Hexo官方文檔需要修改成下面的形式

deploy:
  type: git
  message: [message]
  repo:
    github: <repository url>,[branch]
    gitcafe: <repository url>,[branch] 

所以我的是這樣:

deploy:
  type: git
  repo:
      github: git@github.com:tengj/tengj.github.io.git,master
      coding: git@git.coding.net:tengj/hexoblob.git,master

這里要注意一下:上面這段代碼左邊的-號只能有2個(如下圖紅圈),如果超過2個一般就是會被認定為填寫格式有問題。我是在repo下面兩行用tab鍵縮進就行,之前沒注意這里一直報錯。


我這邊提交采用的SSH密鑰,這個方法有個好處,提交的時候不用輸入用戶名和密碼。如果你習慣用http的方式,只要將地址改成相應的http地址即可。

coding上創建一個新項目


這里只介紹coding上面如何創建項目,以及把本地hexo部署到coding上面,還不懂如何創建hexo的請看我之前的系類文章。首先我們創建一個項目,創建后進入項目的代碼模塊,獲取到這個項目的ssh地址,我的是https://git.coding.net/tengj/hexoblob.git

同步本地hexo到coding上


把獲取到了ssh配置在上面的_config.yml文件中的deploy下,如果是第一次使用coding的話,需要設置SSH公鑰,生成的方法可以參考coding幫助中心
如果你看過我第一篇文章,里面也有介紹如果如果生成,我這里直接使用之前部署github時已經生成的公鑰。

本地打開 id_rsa.pub 文件,復制其中全部內容,填寫到SSH_RSA公鑰key下的一欄,公鑰名稱可以隨意起名字。完成后點擊“添加”,然后輸入密碼或動態碼即可添加完成。

添加后,在git bash命令輸入:

ssh -T git@git.coding.net

如果得到下面提示就表示公鑰添加成功了:

Coding.net Tips : [Hello ! You've conected to Coding.net by SSH successfully! ]

最后使用部署命令就能把博客同步到coding上面:

hexo deploy -g

pages服務方式部署


部署博客方式有兩種,第一種就是pages服務的方式,也推薦這種方式,因為可以綁定域名,而第二種演示的方式必須升級會員才能綁定自定義域名。pages方式也很簡單
就是在source/需要創建一個空白文件,至于原因,是因為 coding.net需要這個文件來作為以靜態文件部署的標志。就是說看到這個Staticfile就知道按照靜態文件來發布。

cd source/
touch Staticfile  #名字必須是Staticfile

分支選擇master,因為前面配置的分支是master,因此開啟之后,也需要是master。然后看起之后就可訪問了。
注意

如果你的項目名稱跟你coding的用戶名一樣,比如我的用戶是叫tengj,博客項目名也叫tengj
那直接訪問 tengj.coding.me就能訪問博客,否則就要帶上項目名:tengj.coding.me/項目名 才能訪問
推薦項目名跟用戶名一樣,這樣就可以省略項目名了

演示方式部署


當你把你的靜態網站上傳到Coding之后,就可以著手部署演示了,Coding的演示平臺支持靜態網頁,所以其實非常簡單。在開啟演示模式之前,會提醒你沒有檢測到環境,你直接強制開啟就可以了。


  • 部署版本我沒有填,默認是master
  • 運行環境一定要選擇HTML
  • 自動部署要勾上,為后面配置自動部署做準備
  • 訪問域名根據你自己喜愛填寫,填好要點急后面的確認按鈕
  • 應用內存也根據自己喜好填寫,填好要點急后面的確認按鈕


以上都配置好了,就可以按下一鍵部署的按鈕了,部署成功后輸入地址:tengj.coding.io就能訪問

設置自動部署


如果你是演示方式的話,就需要設置自動部署,很奇怪,我勾選上了自動部署,但是同步新文章的時候,tengj.coding.io訪問沒有自動更新最新的。查了資料發現還要配置WebHook才行

  • 找到項目設置那邊的WebHook,然后點擊新建 Hook
  • 第一個輸入框中是填你的博客域名,然后在后面加上 /_
  • 第二個輸入框是輸入一個 token ,我們直接填寫 {{TOKEN}} 就可以了,TOKEN兩邊的大括號見的空格記得去掉
  • 回到演示里,在左邊的欄目中找到環境變量,變量名填寫為 WEBHOOK_TOKEN ,值為 {{TOKEN}} ,接著重新啟動應用就 ok 了!


    最后一步我們要測試一下是否 push 代碼的時候就會自動部署。我們回到命令行創建一個新的文章(可以什么都不寫),然后生成靜態頁面 push 到倉庫去:
hexo n codingPage
hexo deploy -g

我們回到瀏覽器在輸入博客的地址,如果那篇新寫好的文章出現在首頁了,說明我們自動部署成功了。以后再也不用自己去手動部署一次了!

個人域名綁定


我在萬網上面購買了tengj.top域名,第一年只要4元哈哈,個人用的就不用com這種超級貴的域名了。現在要實現國內的走coding,海外的走github,只要配置2個CNAME就行。域名解析如下:


過幾分鐘后檢測tengj.top看到的解析是正確的,國內解析到Coding,國外解析到Github,如圖:

我現在訪問tengj.top是跳轉到coding上面
直接訪問tengj.github.io地址會跳轉到tengj.top,但是內容也是coding上面
直接訪問tengj.coding.me發現不會跳轉到tengj.top這個域名,原因我發帖問過別人,答案如下:

github只能綁定一個域名,所以訪問tengj.github.io時,github的服務器知道要往tengj.top跳轉。coding可以綁定多個域名,當綁定多個域名時,訪問tengj.coding.me,coding的服務器不知道要往哪里跳轉,所以干脆就不跳轉了。但是當綁定一個時,為什么不跳轉,可能是coding覺得麻煩,就不跳轉了。這些都是coding定的,我們沒辦法改變。
你先想一個問題:那么多人都要在github上搞博客,還要自定義域名。github哪來這么多ip給你們用?所以辦法就是僅僅提供一個ip,這樣必然導致這個服務器上發著所有人的博客文件,那么如何區分特定的域名應該展示誰的博客呢?答案就是在倉庫里面新建一個CNAME文件,里面寫上你博客想用的域名,github的服務器會根據當前http請求的Host頭部(即域名),查找對應的包含相同的CNAME內容的目錄,從而顯示其中的頁面。這就是為什么要在倉庫里面創建一個CNAME原因。
不過,事情還沒完,一個ip的問題是世界各地不同地點的訪問速度不同,有些地方可能很慢,所以需要一組ip來分擔一下。最早github好像只有2個ip,后來ip變多了。再后來,github支持域名解析的時候,通過alias來。比如在域名商那邊設置成www.tengj.com ---> tengj.github.io,由于github無法控制你如何配置域名和ip的關系,但他可以控制tengj.github.io的最終ip解析,所以github推薦大家使用alias解析,可以為博主提供就近ip訪問。這就是你在域名商那邊配置CNAME或者alias的原理。這里的CNAME跟上面提到的CNAME作用不同,不是一個概念,不要混淆。

參考


使用Cover主題,在Coding上搭建Hexo博客
將hexo博客同時托管到github和gitcafe
個人域名如何同時綁定 github 和 coding 上的博客

總結


到此為止,終于可以實現部署一次,github和coding兩個同步都搞定了。訪問速度也是唰唰唰的快,忙乎了大半個月終于搭好了獨立博客。希望對還在搭建hexo獨立博客的小伙伴有幫助。下一篇研究下如何讓百度能收錄我的博客。


如果對你有所幫助(●ˇ?ˇ●)點個喜歡或者關注下吧,沒準還能打賞下(/▽\=)。你的鼓勵將是博主繼續寫下去的動力,生活不易,且行且珍惜。遇到好文章就先點個贊,回頭再慢慢看。我都這么干的嘿

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容