您好,登錄后才能下訂單哦!
摘要: 在云主機上搭建一個 git 裸倉庫,然后使用 nginx 作為網頁服務器,就可以輕松將 Hexo 博客通過 git 部署到云主機上。
我的博客KiwenLau之前部署在Coding Pages上,挺不錯的,還可以一鍵啟用 HTTPS。作為一個喜歡折騰的人,我突然打算使用 CDN 加速一下訪問速度,然而,國內的 CDN 服務要求網站必須備案。特意郵件問了 Coding 的客服,看來他們近期是不打算支持備案的,于是我就不得不考慮弄個云主機來玩玩了。
后來,Coding Pages忽然添加了跳轉頁面,也就是說訪問我的博客的話,會先彈出 5 秒鐘的 Coding 廣告頁面。買個 Coding 年費 199 的會員就可以去掉,也不算貴,畢竟占著人家的資源。然而,我還琢磨著備案后用 CDN 呢...
于是,我調研了一下各個云服務的價格,1 核 1G 的云主機一年大概都是 600+,比 Coding 會員貴了不少。不過騰訊云最近在搞采購節,1 核 1G 的云主機一年只要 238,果斷買了!
然而,備案這事貌似要折騰很久......此處省略 1 萬字。
我的云主機的操作系統是Ubuntu Server 16.04.1 LTS 64 位。不妨假設它的 IP 地址是152.92.13.78(我當然不會告訴你真實 IP),你需要做的第一步就是配置SSH 公鑰登陸,這樣 Hexo 通過 git 部署博客時就不需要輸入密碼了。
# SSH公鑰登陸將不需要輸入密碼
ssh root@152.92.13.78
為了省事,我將直接使用 root 用戶,這是不符合安全規范的。但是,一方面我只是為了部署博客,不擔心***干壞事;另一方面,我也做了必要的安全防范,比如配置騰訊云安全組,禁止 SSH 密碼登陸以及配置 UFW 防火墻。
這篇的博客參考了利用 GIT HOOKS 部署 HEXO 到 VPS,原文圖文并茂。我做了 一些優化,例如使用 root 用戶,簡化 nginx 配置文件,簡化 post-receive 腳本,同時簡單地介紹一下原理。
apt-get update
apt-get install git-core nginx
mkdir /var/www/blog
vim /etc/nginx/conf.d/blog.conf
由于我的備案還沒弄好,還不能使用 80 端口,所以暫時使用 8080 端口部署博客。
server
{
listen 8080;
root /var/www/blog;
}
ubuntu 16.04 的 init 系統換成了 systemd,因此使用 systemctl 命令來重啟 nginx。
systemctl restart nginx
blog.git作為遠程 Git 倉庫,Hexo 在本地生成的博客靜態文件可以通過 push 與其同步。
mkdir ~/blog.git && cd ~/blog.git
git init --bare
post-receive腳本將在blog.git倉庫接收到 push 時執行。
vim ./hooks/post-receive
腳本非常簡單,刪除原有的/var/www/blog目錄,然后從blog.git倉庫 clone 新的博客靜態文件。
#!/bin/bash
rm -rf /var/www/blog
git clone /root/blog.git /var/www/blog
給post-receive腳本執行權限
chmod +x ./hooks/post-receive
deploy:
type: git
repo: root@152.92.13.78:blog.git
hexo 先生成新的博客靜態文件,然后通過 git 將其同步到云主機的blog.git倉庫。
hexo d
然后通過http://152.92.13.78:8080/即可訪問博客。
備案之后,將 ngnix 端口改為 80,把 server_name 設為域名,然后修改 DNS 解析到云主機就好了。
Fundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了7億+錯誤事件,得到了Google、360、金山軟件、百姓網等眾多知名用戶的認可。歡迎免費試用!
轉載時請注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2017/05/18/deploy-hexo-on-cloud/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。