在华为云 ECS 上零成本部署 Halo 个人博客全流程

举报
赛博大妈 发表于 2026/10/26 02:45:43 2026/10/26
【摘要】 在华为云 ECS 上零成本部署 Halo 个人博客全流程买好了云主机、配好了域名和 HTTPS,下一步当然是把博客真正跑起来。本文以开源博客系统 Halo 为例,用 Docker 在华为云 ECS 上一站式完成部署,全程零额外成本。 一、为什么选 Halo?三款博客系统对比对比项HaloHexoWordPress类型动态博客(Java)静态生成器动态博客(PHP)部署方式Docker 一行...

在华为云 ECS 上零成本部署 Halo 个人博客全流程

买好了云主机、配好了域名和 HTTPS,下一步当然是把博客真正跑起来。本文以开源博客系统 Halo 为例,用 Docker 在华为云 ECS 上一站式完成部署,全程零额外成本。

一、为什么选 Halo?三款博客系统对比

对比项 Halo Hexo WordPress
类型 动态博客(Java) 静态生成器 动态博客(PHP)
部署方式 Docker 一行启动 本地生成+推送静态文件 需 PHP+MySQL 环境
后台管理 ✅ 可视化后台 ❌ 无后台 ✅ 经典后台
主题/插件 主题丰富,一键切换 主题多,换主题需重新生成 生态最大,插件易拖慢
资源占用 约 300–500MB 几乎不占 约 200–400MB
适合谁 浏览器写文章、随时管理 本地写作、极致速度 熟悉 PHP、插件多

**选 Halo 的理由:**动态博客有可视化后台,出差也能浏览器发文章;Docker 部署干净利落;2核2G Flexus 完全带得动。

二、部署前准备清单

准备项 检查方式 状态
ECS 已购可 SSH ssh root@公网IP ✅ 前篇已完成
安全组放行 80/443/8090 控制台→安全组→入方向 ⚠️ 需补放 8090
域名解析到 ECS IP ping 域名 ✅ 前篇已完成
SSL 证书已配 HTTPS 浏览器 https 访问正常 ✅ 前篇已完成

Halo 默认 8090 端口,安全组需临时放行 TCP 8090 调试,配好 Nginx 反代后关闭,正式只留 80/443。

三、4 步部署 Halo

第 1 步:安装 Docker

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
docker --version

第 2 步:创建 Halo 工作目录并启动

mkdir -p ~/.halo && cd ~/.halo
docker run -d \
  --name halo \
  --restart=always \
  -p 8090:8090 \
  -v ~/.halo:/root/.halo2 \
  halohub/halo:2.20
docker logs -f halo
  • -p 8090:8090:容器 8090 映射到宿主机
  • -v ~/.halo:/root/.halo2:数据持久化,容器删了数据还在
  • --restart=always:ECS 重启自动拉起

第 3 步:配置 Nginx 反向代理

yum install -y nginx
systemctl enable --now nginx
vi /etc/nginx/conf.d/blog.conf
server {
    listen 443 ssl;
    server_name 你的域名;
    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
    location / {
        proxy_pass http://127.0.0.1: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 X-Forwarded-Proto $scheme;
    }
}
server {
    listen 80;
    server_name 你的域名;
    return 301 https://$host$request_uri;
}
nginx -t && nginx -s reload

第 4 步:初始化 Halo 并验证

访问 https://你的域名 → 初始化向导:

  1. 设置管理员账号密码
  2. 填站点信息(时区 Asia/Shanghai)
  3. 选主题(推荐 Earth 或 Hao)
  4. 发第一篇文章 → 发布 → 访问首页验证

四、避坑与优化要点

  • 安全组收窄:配好反代后关闭 8090,只留 80/443
  • 数据备份:~/.halo 目录是全部数据,配合 ECS 快照定期备份
  • 内存不够:2核2G 够用;加其他服务建议升 4G;可加 swap 应急
  • 升级 Halo:docker pull halohub/halo:2.20 && docker rm -f halo 再重新 run,数据不丢
  • 开启 gzip:Nginx 加 gzip on; gzip_types text/css application/javascript;

五、总结

从买云主机、配域名、上 HTTPS,到博客真正跑起来——全程只花一台 Flexus 的钱,软件全开源。下一篇:用 OBS 搭建免费图床,解决博客图片存储问题。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。