摘要 在云主機(jī)上搭建一個(gè)git裸倉(cāng)庫(kù),然后使用nginx作為網(wǎng)頁(yè)服務(wù)器,就可以輕松將Hexo博客通過(guò)git部署到云主機(jī)上。
這是一個(gè)憂(yōu)傷的故事
我的博客KiwenLau之前部署在Coding Pages上艇拍,挺不錯(cuò)的,還可以一鍵啟用HTTPS宠纯。作為一個(gè)喜歡折騰的人卸夕,我突然打算使用CDN加速一下訪問(wèn)速度,然而婆瓜,國(guó)內(nèi)的CDN服務(wù)要求網(wǎng)站必須備案快集。特意郵件問(wèn)了Coding的客服,看來(lái)他們近期是不打算支持備案的廉白,于是我就不得不考慮弄個(gè)云主機(jī)來(lái)玩玩了个初。
后來(lái),Coding Pages忽然添加了跳轉(zhuǎn)頁(yè)面猴蹂,也就是說(shuō)訪問(wèn)我的博客的話(huà)院溺,會(huì)先彈出5秒鐘的Coding廣告頁(yè)面。買(mǎi)個(gè)Coding年費(fèi)199的會(huì)員就可以去掉磅轻,也不算貴珍逸,畢竟占著人家的資源。然而瓢省,我還琢磨著備案后用CND呢...
于是弄息,我調(diào)研了一下各個(gè)云服務(wù)的價(jià)格,1核1G的云主機(jī)一年大概都是600+勤婚,比Coding會(huì)員貴了不少摹量。不過(guò)騰訊云最近在搞采購(gòu)節(jié),1核1G的云主機(jī)一年只要238,果斷買(mǎi)了!
然而缨称,備案這事貌似要折騰很久......此處省略1萬(wàn)字凝果。
0. 準(zhǔn)備工作
我的云主機(jī)的操作系統(tǒng)是****Ubuntu Server 16.04.1 LTS 64****位********。不妨假設(shè)它的IP地址是****152.92.13.78****(我當(dāng)然不會(huì)告訴你真實(shí)IP)睦尽,你需要做的第一步就是配置SSH公鑰登陸器净,這樣Hexo通過(guò)git部署博客時(shí)就不需要輸入密碼了。
# SSH公鑰登陸將不需要輸入密碼
ssh root@152.92.13.78
為了省事当凡,我將直接使用root用戶(hù)山害,這是********不符合安全規(guī)范********的。但是沿量,一方面我只是為了部署博客浪慌,不擔(dān)心黑客干壞事;另一方面朴则,我也做了必要的安全防范权纤,比如配置騰訊云安全組,禁止SSH密碼登陸以及配置UFW防火墻乌妒。
這篇的博客參考了利用 GIT HOOKS 部署 HEXO 到 VPS汹想,原文圖文并茂。我做了一些優(yōu)化撤蚊,例如使用root用戶(hù)古掏,簡(jiǎn)化nginx配置文件,簡(jiǎn)化post-receive腳本拴魄,同時(shí)簡(jiǎn)單地介紹一下原理冗茸。
1. 安裝git和nginx
apt-get update
apt-get install git-core nginx
2. 配置Nginx
****/var/www/blog****目錄用于放置生成的靜態(tài)文件
mkdir /var/www/blog
編寫(xiě)nginx配置文件
vim /etc/nginx/conf.d/blog.conf
由于我的備案還沒(méi)弄好席镀,還不能使用80端口匹中,所以暫時(shí)使用8080端口部署博客。
server
{
listen 8080;
root /var/www/blog;
}
重啟nginx
ubuntu 16.04的init系統(tǒng)換成了systemd豪诲,因此使用systemctl命令來(lái)重啟nginx顶捷。
systemctl restart nginx
3. 配置Git Hooks
創(chuàng)建Git裸倉(cāng)庫(kù)
****blog.git****作為遠(yuǎn)程Git倉(cāng)庫(kù),Hexo在本地生成的博客靜態(tài)文件可以通過(guò)push與其同步屎篱。
mkdir ~/blog.git && cd ~/blog.git
git init --bare
配置Hooks腳本
****post-receive****腳本將在****blog.git****倉(cāng)庫(kù)接收到push時(shí)執(zhí)行服赎。
vim blog.git/hooks/post-receive
腳本非常簡(jiǎn)單,刪除原有的****/var/www/blog****目錄交播,然后從****blog.git****倉(cāng)庫(kù)clone新的博客靜態(tài)文件重虑。
#!/bin/bash
rm -rf /var/www/blog
git clone /root/blog.git /var/www/blog
給****post-receive****腳本執(zhí)行權(quán)限
chmod +x blog.git/hooks/post-receive
4. 部署Hexo博客
修改_config.yml
deploy:
type: git
repo: root@152.92.13.78:blog.git
部署博客
hexo先生成新的博客靜態(tài)文件,然后通過(guò)git將其同步到云主機(jī)的****blog.git****倉(cāng)庫(kù)秦士。
hexo d
然后通過(guò)http://152.92.13.78:8080/即可訪問(wèn)博客缺厉。
備案之后,將ngnix端口改為80,把server_name設(shè)為域名提针,然后修改DNS解析到云主機(jī)就好了命爬。
參考鏈接:
版權(quán)聲明:
轉(zhuǎn)載時(shí)請(qǐng)注明作者Fundebug以及本文地址:**
https://blog.fundebug.com/2017/05/18/deploy-hexo-on-cloud/**