前言
之前我們把hexo托管在github易遣,但是畢竟github是國外的甚脉,訪問速度上還是有點慢台谊,所以想也部署一套在國內(nèi)的托管平臺,之前查資料聽說gitcafe,但是聽說gitcafe已經(jīng)被coding收購了蜕乡,所以就決定部署到coding。查詢了多方資料梗夸,終于鼓搗出了本地一次部署异希,同時更新到github以及coding。
正文
_config.yml配置
想要同時部署到2個平臺绒瘦,就要修改博客根目錄下面的_config.yml文件中的deploy如下
根據(jù)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個一般就是會被認(rèn)定為填寫格式有問題。我是在repo下面兩行用tab鍵縮進(jìn)就行惰帽,之前沒注意這里一直報錯憨降。
我這邊提交采用的SSH密鑰,這個方法有個好處该酗,提交的時候不用輸入用戶名和密碼授药。如果你習(xí)慣用http的方式,只要將地址改成相應(yīng)的http地址即可呜魄。
coding上創(chuàng)建一個新項目
這里只介紹coding上面如何創(chuàng)建項目悔叽,以及把本地hexo部署到coding上面,還不懂如何創(chuàng)建hexo的請看我之前的系類文章爵嗅。首先我們創(chuàng)建一個項目娇澎,創(chuàng)建后進(jìn)入項目的代碼模塊,獲取到這個項目的ssh地址睹晒,我的是https://git.coding.net/tengj/hexoblob.git
同步本地hexo到coding上
把獲取到了ssh配置在上面的_config.yml
文件中的deploy
下趟庄,如果是第一次使用coding的話,需要設(shè)置SSH公鑰伪很,生成的方法可以參考coding幫助中心
如果你看過我第一篇文章戚啥,里面也有介紹如果如果生成,我這里直接使用之前部署github時已經(jīng)生成的公鑰锉试。
本地打開 id_rsa.pub
文件猫十,復(fù)制其中全部內(nèi)容,填寫到SSH_RSA公鑰
key下的一欄呆盖,公鑰名稱可以隨意起名字拖云。完成后點擊“添加”,然后輸入密碼或動態(tài)碼即可添加完成絮短。
添加后江兢,在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服務(wù)方式部署
部署博客方式有兩種,第一種就是pages服務(wù)的方式丁频,也推薦這種方式,因為可以綁定域名,而第二種演示的方式必須升級會員才能綁定自定義域名席里。pages方式也很簡單
就是在source/需要創(chuàng)建一個空白文件叔磷,至于原因,是因為 coding.net需要這個文件來作為以靜態(tài)文件部署的標(biāo)志奖磁。就是說看到這個Staticfile就知道按照靜態(tài)文件來發(fā)布改基。
cd source/
touch Staticfile #名字必須是Staticfile
分支選擇master,因為前面配置的分支是master,因此開啟之后咖为,也需要是master秕狰。然后看起之后就可訪問了。
注意:
如果你的項目名稱跟你
coding
的用戶名一樣躁染,比如我的用戶是叫tengj
,博客項目名也叫tengj
那直接訪問tengj.coding.me
就能訪問博客鸣哀,否則就要帶上項目名:tengj.coding.me/項目名
才能訪問
推薦項目名跟用戶名一樣,這樣就可以省略項目名了
演示方式部署
當(dāng)你把你的靜態(tài)網(wǎng)站上傳到Coding之后吞彤,就可以著手部署演示了我衬,Coding的演示平臺支持靜態(tài)網(wǎng)頁,所以其實非常簡單饰恕。在開啟演示模式之前挠羔,會提醒你沒有檢測到環(huán)境,你直接強制開啟就可以了埋嵌。
- 部署版本我沒有填破加,默認(rèn)是master
- 運行環(huán)境一定要選擇HTML
- 自動部署要勾上谱轨,為后面配置自動部署做準(zhǔn)備
- 訪問域名根據(jù)你自己喜愛填寫武契,填好要點急后面的確認(rèn)按鈕
- 應(yīng)用內(nèi)存也根據(jù)自己喜好填寫,填好要點急后面的確認(rèn)按鈕
以上都配置好了押框,就可以按下一鍵部署的按鈕了俐银,部署成功后輸入地址:tengj.coding.io就能訪問
設(shè)置自動部署
如果你是演示方式的話尿背,就需要設(shè)置自動部署,很奇怪捶惜,我勾選上了自動部署田藐,但是同步新文章的時候,tengj.coding.io訪問沒有自動更新最新的吱七。查了資料發(fā)現(xiàn)還要配置WebHook才行
- 找到項目設(shè)置那邊的WebHook,然后點擊新建 Hook
- 第一個輸入框中是填你的博客域名汽久,然后在后面加上 /_
- 第二個輸入框是輸入一個 token ,我們直接填寫
{{TOKEN}}
就可以了,TOKEN兩邊的大括號見的空格記得去掉 - 回到演示里踊餐,在左邊的欄目中找到環(huán)境變量,變量名填寫為
WEBHOOK_TOKEN
景醇,值為{{TOKEN}}
,接著重新啟動應(yīng)用就 ok 了吝岭!
最后一步我們要測試一下是否 push 代碼的時候就會自動部署三痰。我們回到命令行創(chuàng)建一個新的文章(可以什么都不寫)吧寺,然后生成靜態(tài)頁面 push 到倉庫去:
hexo n codingPage
hexo deploy -g
我們回到瀏覽器在輸入博客的地址,如果那篇新寫好的文章出現(xiàn)在首頁了散劫,說明我們自動部署成功了稚机。以后再也不用自己去手動部署一次了!
個人域名綁定
我在萬網(wǎng)上面購買了tengj.top域名获搏,第一年只要4元哈哈赖条,個人用的就不用com這種超級貴的域名了。現(xiàn)在要實現(xiàn)國內(nèi)的走coding常熙,海外的走github纬乍,只要配置2個CNAME就行。域名解析如下:
過幾分鐘后檢測tengj.top看到的解析是正確的裸卫,國內(nèi)解析到Coding仿贬,國外解析到Github,如圖:
我現(xiàn)在訪問tengj.top
是跳轉(zhuǎn)到coding上面
直接訪問tengj.github.io
地址會跳轉(zhuǎn)到tengj.top
,但是內(nèi)容也是coding上面
直接訪問tengj.coding.me
發(fā)現(xiàn)不會跳轉(zhuǎn)到tengj.top
這個域名彼城,原因我發(fā)帖問過別人诅蝶,答案如下:
github只能綁定一個域名,所以訪問
tengj.github.io
時募壕,github的服務(wù)器知道要往tengj.top
跳轉(zhuǎn)调炬。coding可以綁定多個域名,當(dāng)綁定多個域名時舱馅,訪問tengj.coding.me,coding
的服務(wù)器不知道要往哪里跳轉(zhuǎn)缰泡,所以干脆就不跳轉(zhuǎn)了。但是當(dāng)綁定一個時代嗤,為什么不跳轉(zhuǎn)棘钞,可能是coding覺得麻煩,就不跳轉(zhuǎn)了干毅。這些都是coding定的宜猜,我們沒辦法改變。
你先想一個問題:那么多人都要在github
上搞博客硝逢,還要自定義域名姨拥。github哪來這么多ip給你們用?所以辦法就是僅僅提供一個ip渠鸽,這樣必然導(dǎo)致這個服務(wù)器上發(fā)著所有人的博客文件叫乌,那么如何區(qū)分特定的域名應(yīng)該展示誰的博客呢?答案就是在倉庫里面新建一個CNAME文件徽缚,里面寫上你博客想用的域名憨奸,github的服務(wù)器會根據(jù)當(dāng)前http請求的Host頭部(即域名),查找對應(yīng)的包含相同的CNAME內(nèi)容的目錄凿试,從而顯示其中的頁面排宰。這就是為什么要在倉庫里面創(chuàng)建一個CNAME原因似芝。
不過,事情還沒完额各,一個ip的問題是世界各地不同地點的訪問速度不同国觉,有些地方可能很慢吧恃,所以需要一組ip來分擔(dān)一下虾啦。最早github好像只有2個ip,后來ip變多了痕寓。再后來傲醉,github支持域名解析的時候,通過alias來呻率。比如在域名商那邊設(shè)置成www.tengj.com ---> tengj.github.io
硬毕,由于github無法控制你如何配置域名和ip的關(guān)系,但他可以控制tengj.github.io
的最終ip解析礼仗,所以github
推薦大家使用alias
解析吐咳,可以為博主提供就近ip訪問。這就是你在域名商那邊配置CNAME
或者alias
的原理元践。這里的CNAME
跟上面提到的CNAME
作用不同韭脊,不是一個概念,不要混淆单旁。
參考
使用Cover主題沪羔,在Coding上搭建Hexo博客
將hexo博客同時托管到github和gitcafe
個人域名如何同時綁定 github 和 coding 上的博客
總結(jié)
到此為止,終于可以實現(xiàn)部署一次象浑,github和coding兩個同步都搞定了蔫饰。訪問速度也是唰唰唰的快,忙乎了大半個月終于搭好了獨立博客愉豺。希望對還在搭建hexo獨立博客的小伙伴有幫助篓吁。下一篇研究下如何讓百度能收錄我的博客。
如果對你有所幫助(●ˇ?ˇ●)點個喜歡
或者關(guān)注下
吧,沒準(zhǔn)還能打賞下(/▽\=)蚪拦。你的鼓勵將是博主繼續(xù)寫下去的動力杖剪,生活不易,且行且珍惜外盯。遇到好文章就先點個贊摘盆,回頭再慢慢看。我都這么干的嘿