安装 HALO 及配置反向代理 | INSTALL HALO

 段落引用文章来源自:

安装 Halo 及反代配置
前语
最近 Kevin 在安装博客程序时选用了 Halo , 并在群中提到 Halo 的一些特性。在此之前虽然也看见过一些关于 Halo 的文章但没详细了解过,他说过之后去了解了下,原来可以 Docker 一键部署.
0.1 Halo 的搭建环境
0.1.1 系统环境: Docker 或 Java(JDK)
0.1.2 数据库: H2 Database 或 MySQL
这里演示在 Docker & MySQL 下的安装过程

拉取 Halo 镜像
目前最新的镜像 tag 是 1.4.7 故拉取 1.4.7
docker pull halohub/halo:1.4.7
拉取 Halo 镜像
拉取 Halo 镜像

创建 Halo 工作文件夹 & 编辑 Halo 配置信息
2.1 创建 Halo 工作文件夹
mkdir -p /www/wwwroot/halo_ora && cd /www/wwwroot/halo_ora
2.2 编辑 Halo 配置信息
2.2.1 下载基础配置文件至 Halo 工作文件夹内.
curl -o application.yaml https://dl.halo.run/config/application-template.yaml 本来是用 wget 的,结果在提交时被 WAF 拦截了,故切换为 curl .
配置文件样例
server:

服务端口, 这里指的是容器内的端口不用改.
port: 8090

启用 gzip 压缩, 如果使用 nginx 或 apache 可以不开启.
compression:
enabled: false
spring:
datasource:

H2 和 MySQL 二选一, 不用的注释掉或者直接删除即可.

H2 数据库配置信息.

driver-class-name: org.h2.Driver

H2 数据库文件在容器内的位置

url: jdbc:h2:file:~/.halo/db/halo

username: admin

password: 123456

MySQL 数据库配置信息.

MySQL 驱动不用更改

driver-class-name: com.mysql.cj.jdbc.Driver

后面会将 MySQL 容器链接到 Halo 容器故而直接写 db 了, 如果不是可以直接写 MySQL 的地址.

halodb 是数据库名称, 注意数据库版本应为 5.7+ , 字符集与排序规则分别为 utf8mb4 和 utf8mb4_bin , 存储类型为 InnoDB

若时区与所在时区不同, 可以更改.

url: jdbc:mysql://db:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true

数据库的用户名与密码

username: root
password: 123456
H2 数据库控制台配置信息.
h2:
console:
settings:
web-allow-others: false

控制台位置

path: /h2-console

是否启用

enabled: false
halo:

管理客户端位置, 如为 admin, 则管理地址为 http://example.com/admin
admin-path: admin

缓存类型, memory 为内存, level 为本地缓存
cache: memory

启动 Halo 容器
docker run -it -d --name halo -p 127.0.0.1:8090:8090 -v /www/wwwroot/halo_ora:/root/.halo --restart=unless-stopped halohub/halo:1.4.7
注:这里监听的是本地回环地址的 8090 端口,大家可自行更改。如直接对外服务,可删除本地回环地址.
创建文件夹 & 编辑 Halo 配置 以及启动容器创建文件夹 & 编辑 Halo 配置 以及启动容器
创建文件夹 & 编辑 Halo 配置 以及启动容器

配置 Nginx 或 Caddy 反向代理
4.1 Nginx 配置样例:

upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name www.example.com;
client_max_body_size 1024m;
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;
}
}
4.2 Caddy 1.x 配置样例

gzip

proxy / 127.0.0.1:8090 https://www.youdomain.com {tls your@email.com
}
4.3 Caddy 2.x 配置样例

www.youdomain.com

encode gzip

reverse_proxy 127.0.0.1:8090
4.4 Nginx 在宝塔中的配置样例

路径:站点设置 -> 反向代理 -> 添加代理
Nginx 在宝塔中的配置样例
Nginx 在宝塔中的配置样例
5. 安装完成
5.1 按照自己的信息填进去就行了
安装完成
安装完成
6. 结束语
作为一个博客程序,很轻量且安装步骤非常简短,这点要给开发者大大的赞!
响应速度非常快,在查看部分加载流程之后发现大量使用了 CDN 服务,对我来说这点要比隔壁的 WordPress 要轻便很多,许多静态资源直接引用就行了而不必引入到项目目录中.
最让我喜欢的还是支持 MarkDown 编辑,文章直接在本地编辑好发布就行了而不必再到后台中调整布局。作为一个 WordPress 十年老用户,有的时候真的是恨铁不成钢.
这两天经过优化之后,除了动态内容之外,一些静态资源我全部放置到了 CDN 上,对于一台在美西的服务器来说,能做的优化,真的挺少的了.
优化和后台配置我可能过两天再更文章,也可能偷个懒不更,看大家的是否有这个需要了.
文章作者: Ora
文章链接: https://www.ora.pub/2021/04/install-halo/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ora’s Zone!

发表评论

0 评论