安装 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 配置样例
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 评论