OBS 静态网站托管新手配置:从建桶到绑定自定义域名的 6 个
前言
最近把个人博客搬到了华为云 OBS 做静态网站托管,从建桶到绑定自定义域名踩了不少坑。这篇文章按操作顺序整理 6 个新手最容易遇到的问题,每个坑都给出可执行的步骤。
坑 1:区域与 Endpoint 不一致
桶创建在哪个区域(如 cn-north-4),就必须使用对应区域的 Endpoint,格式为 obs.区域ID.myhuaweicloud.com。用错 Endpoint 会返回 301 重定向或签名错误。建议建桶时就记下区域,工具配置里统一填写。
坑 2:上传文件用浏览器,大站点又慢又容易失败
静态站文件多,推荐使用 obsutil 批量上传:
# 初始化配置(使用 IAM 子账号的 AK/SK,不要用主账号)
obsutil config -i=<AK> -k=<SK> -e=obs.cn-north-4.myhuaweicloud.com
# 递归上传 public 目录到桶根目录
obsutil cp ./public obs://my-site-bucket -r -f
-r 表示递归,-f 表示强制覆盖,不再二次确认。AK/SK 切勿提交到代码仓库。
坑 3:静态网站托管没配首页和 404
进入桶 → 「基础配置」→「静态网站托管」,开启后填写默认首页 index.html 和错误页 404.html。没有配置时,访问目录会直接返回 XML 报错而不是页面。
坑 4:公共读权限配错
访问静态网站需要对象可被匿名读取。不建议整桶设置成公共读写,推荐用桶策略只放开读:
{
"Statement": [{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": {"ID": "*"},
"Action": ["GetObject"],
"Resource": ["my-site-bucket/*"]
}]
}
只授予 GetObject,不要放开 PutObject 和 DeleteObject,否则文件可能被他人篡改。
坑 5:自定义域名和 HTTPS
- 在桶的「域名管理」中添加自定义域名,系统会给出一个桶域名。
- 到域名解析服务商添加 CNAME 记录,指向桶域名或 CDN 加速域名。
- 直接绑定 OBS 的自定义域名不支持上传证书做 HTTPS,需要使用 CDN 加速并在 CDN 上配置 SSL 证书,开启 HTTPS 和强制跳转。
- 域名在国内托管必须先完成 ICP 备案。
坑 6:更新后页面不变,以及流量计费
接入 CDN 后,覆盖上传文件,用户看到的仍是旧内容,原因是 CDN 缓存。更新后到 CDN 控制台「刷新预热」提交 URL 刷新,或给静态资源文件名加 hash。
计费方面要留意:公网出流量按量收费,同区域内网访问免流量费;低频、归档存储有最短存储时长和取回费用,静态站点请使用标准存储。建议同时开启 CDN 和流量告警,避免被盗链刷出高额账单,可在桶里配置防盗链白名单。
总结
按「选对区域 → obsutil 上传 → 配首页和 404 → 桶策略放开读 → CDN+HTTPS+域名 → 刷新缓存与控制成本」的顺序操作,基本可以一次配通。欢迎大家补充遇到的其他问题。
- 点赞
- 收藏
- 关注作者
评论(0)