前言
說在前面
之前一直有在各大平台釋出部落格内容,然後個人部落格一直使用的是 Hexo + Github Pages 的方式,但随着内容增多,Github Pages 通路的也不穩定,是以想着自己搞個伺服器和域名搭個部落格,最終標明 Halo 這個部落格架構,搭建屬于自己的部落格。
此内容從零到一手把手記錄如何搭建,記錄自己的搭建過程,也給後面的朋友們提供一個指南,少走些冤枉路,盡快上手。
環境配置
自己花了 210 左右在 UCloud 買了三年的伺服器,然後在騰訊花了将近 200 買了個域名,伺服器版本是 Ubuntu 18.04 64 位,理論上講下面的配置适合于 Ubuntu 系所有版本,個别有出入的地方還請諒解。是以在正式開始之前,你需要滿足以下幾個條件:
- 一台 Ubuntu 系統的伺服器(Centos 系統的參考 官網教程 即可);
- 一個域名;
Java 環境配置
安裝
- 首先去 官網 下載下傳 JDK,選擇自己想要的版本即可,一般推薦 JDK 1.8+ 的版本;

- 解壓下載下傳後的檔案;
tar -zxvf jdk-11.0.9_linux-x64_bin.tar.gz
複制
- 配置環境變量,切換到 root 使用者,然後編輯
檔案,添加如下内容(注意路徑切換為你自己放置解壓縮包後的位置);/etc/profile
export JAVA_HOME=/environment/jdk/jdk-11.0.9
export PATH=$JAVA_HOME/bin:$PATH
複制
驗證
安裝好之後就是驗證是否成功,一般我們用如下指令進行檢測;
# 檢視 jdk 版本
java -version
# 編譯指令
javac
# 運作指令
java
複制
安裝 Halo
下載下傳 Halo 運作包
要下載下傳 Halo 運作包,可以通過兩種方式,更推薦第二種,下載下傳起來更快:
- Github releases:https://github.com/halo-dev/halo/releases
- Nova 提供的下載下傳站:https://dl.halo.run
利用如下指令進行下載下傳,以 1.4.2 版本為例,如果要下載下傳其他版本,換版本号即可!
wget https://dl.halo.run/release/halo-1.4.2.jar
複制
配置
- 下載下傳配置檔案(下載下傳後的檔案存放在
);~/.halo/application.yaml
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml
複制
- 修改配置,參考 官方文檔 修改即可;
server:
port: 8090
# Response data gzip.
compression:
enabled: false
spring:
datasource:
# H2 database configuration.
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin
password: 123456
# MySQL database configuration.
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# username: root
# password: 123456
# H2 database console configuration.
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: memory
複制
運作 Halo
配置好 Java 環境,同時下載下傳好 Halo 運作包之後,我們就可以使用如下指令運作了;
java -jar halo-latest.jar
複制
然後在本地浏覽器中通路如下位址即可;
http://ip:8090
進階配置
開機自啟
- 下載下傳 Halo 官方
模闆,然後對其進行修改(此時需要管理者權限);service
sudo curl -o /etc/systemd/system/halo.service --create-dirs https://dl.halo.run/config/halo.service
複制
- 修改配置檔案
具體可以參考 官方文檔;
需要注意的幾點:
- 填寫你的 JDK 絕對路徑;
- 填寫你的 Halo 運作包所在絕對路徑;
- 填寫運作 Halo 服務的使用者名;
- 測試
# 修改 service 後需要 Systemd
sudo systemctl daemon-reload
# 使 Halo 開機自啟
sudo systemctl enable halo
# 啟動 Halo
sudo service halo start
# 重新開機 Halo
sudo service halo restart
# 停止 Halo
sudo service halo stop
# 檢視 Halo 的運作狀态
sudo service halo status
複制
Halo 更新
Halo 是一個活躍的社群,目前一直在開發疊代中,後續如果釋出了新的版本,而我們又想要更新,這時候就可以按照如下步驟來進行操作了;
- 首先,我們需要對我們原有資料進行備份,防止丢失
cp -r ~/.halo ~/.halo.bak
複制
- 接着備份久的 Halo 安裝包,防止新的安裝包出現問題後無法復原;
mv halo-latest.jar halo-latest.jar.bak
複制
- 做好備份工作之後,就是下載下傳最新的 Halo 安裝包了,其中
對應最新版本号;{{verison}}
wget https://dl.halo.run/release/halo-{{version}}.jar -O halo-latest.jar
複制
- 測試一下最新版的 Halo 能否運作成功;
java -jar halo-latest.jar
複制
- 測試步驟如果成功了,那我們直接重新開機 Halo 服務就好了;
sudo service halo restart
複制
域名通路
通過上面的配置之後,我們隻能通過
ip:port
的方式進行通路,如果我們想讓别人來通路,那麼有一個域名就十分有必要了。在正式進行配置域名之前,需要確定如下幾件準備工作:
- Halo 已經能夠正确運作,且運作端口不是
端口;80
- 確定域名解析到伺服器 IP,而且確定伺服器已經備案(國内伺服器都需要,國外無需);
- 打開伺服器的
和80
端口;443
配置域名解析伺服器 IP
因為我的域名是在騰訊買的,是以這裡以騰訊為例;
- 首先打開 域名解析清單,并點選右側解析進入解析界面;
- 接着添加記錄;
添加如下兩條記錄,其他字段保持預設即可;
主機記錄 | 記錄類型 | 記錄值 |
---|---|---|
@ | A | 你的伺服器 IP |
www | A | 你的伺服器 IP |
打開伺服器對應端口
- 登入你的伺服器,然後打開主機管理界面;
- 接着編輯防火牆,将需要打開的端口打開即可,一般打開如下的協定端口就可以了;
- ICMP
- 3389
- 80
- 443
- 21
- 22
- 8090
利用 Nginx 進行反向代理
- 安裝 Nginx
sudo apt-get install nginx
複制
- 設定開機自啟動 Nginx
systemctl enable nginx
複制
- 啟動 Nginx
sudo service nginx start
複制
- 配置 Nginx
首先下載下傳 Halo 官方的 Nginx 配置模闆;
curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf
複制
然後對其進行修改;
sudo vim /etc/nginx/conf.d/halo.conf
複制
隻需要将其中的
example.com
修改成自己的域名即可,比如我的域名是
cunyu1943.site
;
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8090/;
}
}
複制
- 自動配置 SSL 證書
首先安裝 certbot nginx 插件;
sudo apt-get install python-certbot-nginx
複制
接着執行配置,過程中會詢問為哪個域名添加證書,以及是否重定向,如實選擇即可;
sudo certbot --nginx
複制
最後,設定自動續約即可;
sudo certbot renew --dry-run
複制
- 完成上述步驟之後,大功告成了,我們就可以通過自己的域名來通路自己的部落格了,比如我的部落格就是:
https://cunyu1943.site
總結
好了,經過上面的一系列設定,我們的部落格就搭建完成了,是不是好簡單的說,那就别猶豫,趕緊動手搞起來吧!
最後再貼以下自己的部落格位址,歡迎大家來留言,交換友鍊呀!
https://cunyu1943.site