將Hexo博客部署到雲主機


摘要: 在雲主機上搭建一個git裸倉庫,然后使用nginx作為網頁服務器,就可以輕松將Hexo博客通過git部署到雲主機上。

這是一個憂傷的故事

我的博客KiwenLau之前部署在Coding Pages上,挺不錯的,還可以一鍵啟用HTTPS。作為一個喜歡折騰的人,我突然打算使用CDN加速一下訪問速度,然而,國內的CDN服務要求網站必須備案。特意郵件問了Coding的客服,看來他們近期是不打算支持備案的,於是我就不得不考慮弄個雲主機來玩玩了。

后來,Coding Pages忽然添加了跳轉頁面,也就是說訪問我的博客的話,會先彈出5秒鍾的Coding廣告頁面。買個Coding年費199的會員就可以去掉,也不算貴,畢竟占着人家的資源。然而,我還琢磨着備案后用CND呢…

於是,我調研了一下各個雲服務的價格,1核1G的雲主機一年大概都是600+,比Coding會員貴了不少。不過騰訊雲最近在搞采購節,1核1G的雲主機一年只要238,果斷買了!

然而,備案這事貌似要折騰很久……此處省略1萬字。

0. 准備工作

我的雲主機的操作系統是Ubuntu Server 16.04.1 LTS 64位。不妨假設它的IP地址是152.92.13.78(我當然不會告訴你真實IP),你需要做的第一步就是配置SSH公鑰登陸,這樣Hexo通過git部署博客時就不需要輸入密碼了。

# SSH公鑰登陸將不需要輸入密碼
ssh root@152.92.13.78

這篇的博客參考了利用 GIT HOOKS 部署 HEXO 到 VPS,原文圖文並茂。我做了一些優化,例如使用root用戶,簡化nginx配置文件,簡化post-receive腳本,同時簡單地介紹一下原理。為了省事,我將直接使用root用戶,這是不符合安全規范的。但是,一方面我只是為了部署博客,不擔心黑客干壞事;另一方面,我也做了必要的安全防范,比如配置騰訊雲安全組,禁止SSH密碼登陸以及配置UFW防火牆。

1. 安裝git和nginx

apt-get update
apt-get install git-core nginx

2. 配置Nginx

/var/www/blog目錄用於放置生成的靜態文件

mkdir /var/www/blog

編寫nginx配置文件

vim /etc/nginx/conf.d/blog.conf

由於我的備案還沒弄好,還不能使用80端口,所以暫時使用8080端口部署博客。

server
{
    listen 8080;
    root /var/www/blog;
}

ubuntu 16.04的init系統換成了systemd,因此使用systemctl命令來重啟nginx。重啟nginx

systemctl restart nginx

3. 配置Git Hooks

創建Git裸倉庫

blog.git作為遠程Git倉庫,Hexo在本地生成的博客靜態文件可以通過push與其同步。

mkdir ~/blog.git && cd ~/blog.git
git init --bare

post-receive腳本將在blog.git倉庫接收到push時執行。配置Hooks腳本

vim blog.git/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 blog.git/hooks/post-receive

 

4. 部署Hexo博客

修改_config.yml

deploy:
  type: git
  repo: root@152.92.13.78:blog.git

hexo先生成新的博客靜態文件,然后通過git將其同步到雲主機的blog.git倉庫。部署博客

備案之后,將ngnix端口改為80,把server_name設為域名,然后修改DNS解析到雲主機就好了。然后通過http://152.92.13.78:8080/即可訪問博客。

hexo d

  

參考鏈接:

關於Fundebug

Fundebug專注於JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實時BUG監控。
自從2016年雙十一正式上線,Fundebug累計處理了6億+錯誤事件,得到了Google、360、金山軟件等眾多知名用戶的認可。歡迎免費試用!

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM