参考: Halo文档

正文

1.云服务器选择 操作系统选择

选择你自己的买的服务器即可
操作系统选择CentOS,最好是Centos7.x版本。

2.安装宝塔面板 放行8888端口

进入宝塔官网,可以一键快捷安装:官网
服务器IP为服务器的外网IP地址,端口号默认为22
验证方式为密码验证,密码输入你重置的服务器 Linux 实例密码,确认安装即可。
安装成功后记住账号密码,在云服务器处放行8888端口

3.在宝塔面板中安装安装Nginx

在进入宝塔面板后点击软件商城,搜索并安装Nginx,安装最新版即可。

4.在宝塔首页SSH页面输入以下命令

1
sudo yum install java-11-openjdk -y

检查版本:

1
java -version

如果输出以下类似内容即代表成功

1
2
3
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode, sharing)

创建存放 运行包 的目录,这里以 ~/app 为例

1
mkdir ~/app && cd ~/app

下载运行包

1
wget https://dl.halo.run/release/halo-1.5.0.jar -O halo.jar

创建 工作目录

1
mkdir ~/.halo && cd ~/.halo

下载示例配置文件到 工作目录

1
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml 

编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考

1
vim application.yaml

配置参考

1
https://docs.halo.run/getting-started/config/

下载 Halo 官方的 halo.service 模板

1
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service

修改 halo.service

1
vim /etc/systemd/system/halo.service

如果你完全按照我之前的步骤操作可直接改成下面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple

ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /app/halo.jar
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

重新加载 systemd

1
systemctl daemon-reload

运行服务

1
systemctl start halo

在系统启动时启动服务

1
systemctl enable halo

您可以查看服务日志检查启动状态

1
journalctl -n 20 -u halo

5.在腾讯云和宝塔面板放行8090端口

云服务器:放行8090端口
宝塔面板:点击安全页面,放行8090端口

6.Halo配置

以上步骤完成之后,在浏览器输入

1
http://服务器主机地址:8090

回车之后,等一会Halo就可以进行初始配置了

7.主题配置

直接进入到Halo官网的主题仓库下载自己喜欢的主题即可
主题仓库

8.宝塔面板进行反向代理(需要有一个域名,域名解析服务器外网ip)

先打开宝塔面板中的网站一栏,点击添加站点
只需要添加自己的域名,其他配置不动,提交后点击添加的域名设置SSL

设置 SSL

在配置反向代理之前,我们推荐先设置好 SSL 证书。
可选择 宝塔 SSL 或者 Let’s Encrypt 进行证书申请。
或者在其他证书一栏中填入你现在拥有的SSL证书密钥和PEM填入保存。
需要开启右上角的 强制 HTTPS。

修改配置文件

在根节点添加:

1
2
3
4
upstream halo {
server 127.0.0.1:8090;
}
其中的 8090 为 Halo 的运行端口,请按需修改。

在 server 节点添加:

1
2
3
4
5
6
7
8

location / {
proxy_pass http://halo;
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;
}

修改 server 节点中的 location ~ .*.(gif|jpg|

1
2
3
4
5
6
7
8
9
jpeg|png|bmp|swf)$ 节点:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://halo;
expires 30d;
error_log /dev/null;
access_log off;
}

修改 server 节点中的 location ~ .*.(js|css)?$ 节点:

1
2
3
4
5
6
7
location ~ .*\.(js|css)?$
{
proxy_pass http://halo;
expires 12h;
error_log /dev/null;
access_log off;
}

完整配置文件示例(仅包含关键部分):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
upstream halo {
server 127.0.0.1:8090;
}
server
{
...

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://halo;
expires 30d;
error_log /dev/null;
access_log off;
}

location ~ .*\.(js|css)?$
{
proxy_pass http://halo;
expires 12h;
error_log /dev/null;
access_log off;
}

location / {
proxy_pass http://halo;
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;
}

...
}

随后点击保存即可。如果配置不生效,请重载 Nginx 或者 重启 Nginx。

9.修改Halo配置

进入Halo后台后点击 系统 再点击 博客设置
将博客地址一栏改为

1
2
3
4
5
6
##如果你配置了SSL并开启了强制Https则改为
https://www.域名.后缀/

##若没有配置SSL
http://www.域名.后缀/