序言
搭建一个属于自己的博客不仅仅是技术活,更是一次解决问题的实战演练。本篇文章将记录我从购买服务器开始,利用 1Panel 面板搭建 Halo 博客,并最终成功关联 阿里云 OSS 存储的完整历程。
一、 环境准备
在开始之前,我的基础配置如下:
操作系统:Ubuntu 24.04 LTS
管理面板:1Panel(基于容器化的现代运维面板)
博客系统:Halo 2.x
域名:
xiaohui-code.cn
二、 1Panel 环境下的 Halo 部署
1. Docker 镜像加速
在安装 Halo 之前,最先遇到的往往是网络问题。
痛点:由于网络环境影响,Docker 镜像拉取极慢甚至报错。
对策:在 1Panel 的【容器】->【配置】中,添加国内镜像加速源。确保
docker pull能够秒速完成。
2. 数据库连接难题
Halo 在初始化配置时,数据库地址是新手最容易踩坑的地方。
注意点:在 1Panel 的容器架构下,不要使用
127.0.0.1。解法:使用 1Panel 自动生成的 MySQL 容器名称。这样 Halo 容器才能在内部网络中通过 DNS 解析找到数据库。
3. 反向代理与端口开放
为了让博客通过域名访问,我们需要配置 OpenResty(Nginx):
反向代理:将
xiaohui-code.cn指向 Halo 容器的内部 IP 和端口。防火墙:在 1Panel 安全设置中放行对应的 Web 端口(80/443)。
三、 进阶:关联阿里云 OSS 存储
为了减轻服务器的带宽与存储压力,我将静态资源迁移到了阿里云 OSS。
1. 插件配置
在 Halo 后台的应用市场中,安装 对象存储(S3 协议) 插件。阿里云 OSS 完美支持 S3 协议,配置参数如下:
Endpoint:填写你 Bucket 所在地域的访问域名。
Bucket 名称:对应的 OSS 存储桶名。
2. 安全实践:使用 RAM 用户
严禁直接使用主账号的 AccessKey,这是极其危险的操作。
操作流程:
进入阿里云 RAM 控制台,新建子用户。
勾选 OpenAPI 调用访问,保存好生成的
AccessKey ID和AccessKey Secret。为该用户授予
AliyunOSSFullAccess权限。
优势:即便该 Key 泄露,黑客也只能操作你的 OSS 资源,无法触及你的账号核心资产(如服务器、余额等)。
四、 疑难杂症回顾
Q:删除 RAM 用户后重新添加需要注意什么?
A:重新创建子用户后,旧的 AccessKey 会立即失效。必须在 Halo 的 OSS 插件配置中同步更新最新的 AccessKey ID 和 Secret,否则会导致博客后台图片上传失败或前端图片无法加载。
五、 总结
从服务器选购到域名备案,从 1Panel 的容器化管理到 OSS 的云端存储,这一路走来虽有波折,但更多的是掌握新工具的快感。
希望这份记录能帮助你在搭建 Halo 的过程中少走弯路!
评论区