声明:本文章基于官方文档进行改编,可自行前往Halo官网查看。
Halo博客
1. 直接部署
1.1. 依赖检查
目前运行 Halo 的最低依赖要求为 JRE 11,请务必确保在进行下面操作之前已经正确安装了 JRE。
目前介绍两种 Linux 发行版的安装方式,均为 OpenJRE,不推荐 Oracle 版本。
CentOS
sudo yum install java-11-openjdk -y
Ubuntu
sudo apt-get install openjdk-11-jre -y
检查版本:
java -version
如果输出以下类似内容即代表成功
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)
1.2. 安装
1.2.1.创建存放运行包的目录,这里以 ~/app 为例
mkdir ~/app && cd ~/app
1.2.2.使用wget下载运行包
wget https://dl.halo.run/release/halo-1.5.3.jar -O halo.jar
1.2.3.创建工作目录
mkdir ~/.halo && cd ~/.halo
1.2.4.下载示例文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
1.2.5.编辑配置文件(如需配置参考->配置参考)
1.2.6.测试运行Halo
cd ~/app && java -jar halo.jar
1.2.7.如看到类似日志则代表启动成功。
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener : Halo has started successfully!
打开http://ip:端口即可看到安装引导界面。
2.docker部署(推荐)
2.1.安装docker
2.1.1.有宝塔面板可以在宝塔面板中找到Docker管理器安装即可
2.1.2.无宝塔面板
linux上安装Docker(非常简单的安装方法)
2.2.拉取镜像安装
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo:1.5.3
这里提供的命令是简易安装版,想要具体设置可以以前往官方查看文档
使用 Docker 部署 Halo
- -it: 开启输入功能并连接伪终端
- -d: 后台运行容器
- –name: 为容器指定一个名称
- -p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
- –v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
- –restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动 Halo 容器。
打开http://ip:端口即可看到安装引导界面。
3.反向代理(nginx)
- 这里只介绍nginx反向代理配置。
3.1.宝塔面板配置反向代理(nginx)
3.1.1打开宝塔面板管理界面选择添加网站
填好域名其余配置如上图
3.1.2.配置https(可选)
站点管理选择SSL
选择 Let‘s Encrypt(最快的SSL获取)一键获取
3.1.3. 反向代理配置
点击保存完成配置
3.2.1.nginx配置文件
#PROXY-START/
location ^~ /
{
proxy_pass http://0.0.0.0:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
set $static_fileelcjjerM 0;
if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
{
set $static_fileelcjjerM 1;
expires 12h;
}
if ( $static_fileelcjjerM = 0 )
{
add_header Cache-Control no-cache;
}
}
#PROXY-END/