在华为云 ECS 上零成本部署 Halo 个人博客全流程
【摘要】 在华为云 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://你的域名 → 初始化向导:
- 设置管理员账号密码
- 填站点信息(时区 Asia/Shanghai)
- 选主题(推荐 Earth 或 Hao)
- 发第一篇文章 → 发布 → 访问首页验证
四、避坑与优化要点
- 安全组收窄:配好反代后关闭 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)