本文最后更新于 2025年11月19日 晚上
Halo是一个开源的个人博客系统,它提供了一个简洁、易用的界面和丰富的功能,使您可以轻松创建和管理自己的博客。
搭建Halo
官方文档已经很详细了,可优先以官方文档为主: Halo Documents-安装指南
我这里使用DockerCompose部署,Halo版本为2.5.2,系统为Centos 7
1.安装Docker和Docker Compose
参考:Docker相关
2.安装Halo
1.创建数据文件夹
在系统任意位置创建一个文件夹,这里以 ~/halo 为例。
1
| mkdir ~/halo && cd ~/halo
|
注意:后续操作中,Halo 产生的所有数据都会保存在这个目录,请妥善保存。
2.创建 docker-compose.yaml
1
| touch docker-compose.yaml
|
我这里使用创建 Halo + MySQL 的实例文件:
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| version: "3"
services: halo: image: halohub/halo:2.5.2 container_name: halo restart: on-failure:3 depends_on: halodb: condition: service_healthy networks: halo_network: volumes: - ./:/root/.halo2 ports: - "8090:8090" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"] interval: 30s timeout: 5s retries: 5 start_period: 30s command: - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo - --spring.r2dbc.username=root - --spring.r2dbc.password=你的密码(同下保持一致) - --spring.sql.init.platform=mysql - --halo.external-url=http://localhost:8090/ - --halo.security.initializer.superadminusername=你的初始用户名(控制台) - --halo.security.initializer.superadminpassword=你的初始密码(控制台)
halodb: image: mysql:8.0.31 container_name: halodb restart: on-failure:3 networks: halo_network: command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true volumes: - ./mysql:/var/lib/mysql - ./mysqlBackup:/data/mysqlBackup ports: - "3306:3306" healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] interval: 3s retries: 5 start_period: 30s environment: - MYSQL_ROOT_PASSWORD=你的密码(同上保持一致) - MYSQL_DATABASE=halo
networks: halo_network:
|
3.启动Halo
1.启动 Halo 服务
2.实时查看日志
3.访问验证
用浏览器访问 http://ip:8090/console 即可进入Halo管理页面,用户名和密码为在 docker-compose.yaml 文件中设置的 superadminusername 和 superadminpassword。
nginx配置反向代理
1.安装nginx流程(已安装则跳过)
1. 安装EPEL存储库(如果尚未安装):
1
| sudo yum install epel-release
|
2. 安装Nginx:
3. 启动Nginx服务:
1
| sudo systemctl start nginx
|
4. 设置Nginx开机自启动:
1
| sudo systemctl enable nginx
|
5. 验证Nginx是否已成功安装:
以上步骤将从EPEL存储库安装最新版本的Nginx。
请注意,安装Nginx可能需要root权限或具有sudo权限的用户才能执行。
2.修改nginx配置
配置文件路径:/etc/nginx/nginx.conf
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 34 35 36
| worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream halo { server 127.0.0.1:8090; } server { listen 80; listen [::]:80; server_name 你的域名; 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; } } }
|
完成后用浏览器访问 http://域名/console 即可进入Halo管理页面
CloudFlare配置HTTPS和CDN缓存
登录CloudFlare,按下图配置




之后等待几分钟,用浏览器访问 http://域名/console ,就会发现http自动转为https,CloudFlare已为我们配置好了证书
完成