Web Explorer
技术

个人网站博客图床终极指南:阿里云 OSS + 宝塔反代 + PicGo

#图床 #OSS #宝塔 #HTTPS #PicGo #优化

在写个人博客时,图片存储(图床)一直是个绕不开的话题。放在本地会拖慢构建速度、撑爆 Git 仓库;放在免费第三方图床又随时面临跑路、防盗链的风险。

经过一番踩坑和对比,我最终摸索出了一套低成本、免维护、支持 HTTPS 永久自动续期的终极图床方案:阿里云 OSS + 宝塔反向代理 + PicGo

这篇文章将完整复盘整个配置过程。


1. 技术选型与踩坑

1.1 为什么不用免费第三方图床?

很多博主起步时会用路过图床、新浪图床甚至 GitHub Issues。但这些方案的致命伤是数据不在自己手里。一旦平台增加防盗链规则或关停,博客里精心准备的配图就会全部挂掉(全是一把叉 ❌),恢复成本极高。

1.2 为什么选阿里云 OSS?

既然要稳定,云厂商的对象存储(OSS)是最佳选择。 一开始我被阿里云各种几百块的“存储包”吓退了,但仔细研究计费规则后发现:个人博客根本不需要买资源包,直接按量付费最划算

  • 存储费:0.12 元 / GB / 月
  • 下行流量费:0.29~0.5 元 / GB 按初期博客的访问量,一个月花销可能也就几毛钱,完全可以接受。

1.3 最大的痛点:HTTPS 证书续期

在现代浏览器中,HTTPS 网站必须加载 HTTPS 图片。如果你给 OSS 绑定了自定义域名(如 img.webexp.cn),就必须给它配 SSL 证书。

  • 坑点 1:阿里云免费证书有效期缩短到了 90 天,且不支持自动续签。这意味着每年要手动续 4 次,心智负担极重。
  • 坑点 2:宝塔面板申请的 Let’s Encrypt 支持自动续签,但它是针对服务器本地网站的,证书不会自动同步给 OSS。

1.4 终极解法:ECS 宝塔反向代理

为了实现“零维护”,我利用现有的装了宝塔的 ECS 做了反向代理: 访客看图片 -> img.webexp.cn (指向 ECS 宝塔) -> 宝塔自动处理 HTTPS 证书 -> 宝塔通过内网去 OSS 拿图片

这个方案的绝杀优势在于:

  1. 证书在宝塔端永久自动续期,OSS 端不需要配证书。
  2. 如果 ECS 和 OSS 在同地域,走内网拉取图片,直接免去了 OSS 的外网流出流量费

2. 阿里云 OSS 配置指南

2.1 创建 Bucket

进入阿里云对象存储控制台,点击“创建 Bucket”:

  • 地域:选择与你 ECS 服务器相同的地域(为了走内网)。
  • 存储类型:标准存储。
  • 存储冗余类型:本地冗余存储(省钱)。
  • 阻止公共访问必须关闭
  • 读写权限必须选“公共读”

阿里云 OSS 创建 Bucket 配置说明

2.2 获取 AccessKey

鼠标移到右上角头像,进入“AccessKey 管理”,创建并记录下 AccessKey IDAccessKey Secret请务必保密,不要泄露!


3. 宝塔反向代理与 HTTPS 配置

3.1 域名解析

在域名服务商处,将图床域名(如 img.webexp.cn)通过 A 记录 解析到你的 ECS 服务器公网 IP。

3.2 宝塔建站与 SSL 配置

  1. 在宝塔“网站”列表点击“添加站点”,域名填 img.webexp.cn,创建一个纯静态网站(不需要数据库和 FTP)。
  2. 点击网站的“设置” -> “SSL”,选择 Let’s Encrypt
  3. 勾选域名并点击申请。申请成功后,务必打开右上角的 “强制 HTTPS”

宝塔面板配置 SSL 证书并强制开启 HTTPS

3.3 设置反向代理

  1. 在网站设置中点击 “反向代理” -> “添加反向代理”
  2. 代理名称:随意(如 OSS-Proxy)。
  3. 目标 URL:填入 OSS 提供的内网域名(例如 http://xxx.oss-cn-hangzhou-internal.aliyuncs.com),注意一定要带 http://
  4. 发送域名:填 $host
  5. 提交保存。

宝塔添加反向代理配置 OSS 内网域名

配置完成后,代理列表中的 SSL 证书状态应显示为绿色的“正常”。


4. PicGo 客户端配置

最后一步,打通本地写作与云端存储。

  1. 下载并安装 PicGo 客户端。
  2. 打开图床设置 -> 阿里云 OSS:
    • 设定 KeyId:填入前文获取的 AccessKey ID。
    • 设定 KeySecret:填入 AccessKey Secret。
    • 设定存储空间名:你的 Bucket 名称。
    • 确认存储区域:如 oss-cn-hangzhou
    • 设定自定义域名:填入你的反代域名,必须带 https(如 https://img.webexp.cn)。

PicGo 阿里云 OSS 存储配置示例

点击确定并设为默认图床。


5. 总结

至此,一套完美的图床工作流就搭建完毕了:

  • 写作时:截图 -> 快捷键唤出 PicGo 上传 -> 剪贴板自动生成 ![image](https://img.webexp.cn/...) 链接 -> 直接粘贴到 Markdown。
  • 访问时:读者访问图片走你的反代域名,HTTPS 证书宝塔自动续期,流量走阿里云内网免计费。

这种将存储(OSS)与访问控制(ECS+反代)解耦的设计,不仅极大地降低了成本,更彻底消灭了繁琐的证书维护工作,让你能真正专注于内容创作本身。