社交媒体

1Panel 部署 Halo:反向代理和 HTTPS 的坑

1Panel 部署 Halo:反向代理和 HTTPS 的坑

用 1Panel 在国内 VPS 上部署 Halo,比 Docker 一行命令要踩几个坑。

第一个坑是端口。Halo 默认 8090,但 1Panel 的反向代理默认走 80/443,容器端口映射对不上。正确做法是容器内部保持 8090,宿主端口随便映射,反代指到宿主端口。

第二个坑是 HTTPS。申请证书的时候,1Panel 默认只签主域名,www 子域名要手动加 SAN。否则用 www.shfmer.top 访问就是证书错误,这正是之前内置浏览器报

NET::ERR_CERT_COMMON_NAME_INVALID

的原因,第三个坑是上传大小。Halo 后台传附件,Nginx 默认 client_max_body_size 是 1M,传个几十 MB 的主题 zip 直接 413。要在反代配置里加 client_max_body_size 100m。

第四个坑是缓存。Halo 是 SPA,前端静态资源要配强缓存,但 HTML 不能缓存,不然改了主题用户还看到旧的。

这套配下来,一个 VPS 从裸系统到博客上线,大概 40 分钟。

---