今天花了点时间,对新博客的媒体资源存储和加载方式进行了一次彻底的升级改造。之前使用Wordpress的博客,一是带宽小,二是所有资源都走服务器的带宽,访问就更慢了。

本次优化核心目标就两个:1. 给服务器减负;2. 让全球读者都能秒开图片。最终用阿里云OSS(对象存储)+ CDN(内容分发网络)完美实现,过程记录如下。


一、核心建设:自建图床

实际上,现在市面上有许多可供选择的图床平台,阿里云,腾讯云,七牛云等等都有。考虑到服务器在阿里云上,我为了方便就选择了阿里云。

  1. 开通阿里云OSS

    • 图床的选择首先你要拥有一个储存的地方,根据官网的介绍:

      阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。
      alt text

    • 也是第一次使用,我申请了免费额度,在阿里云控制台创建了一个标准存储类型的Bucket,选择的地域离我的服务器所在地最近,以获得最低的初始访问延迟。

  2. 绑定自定义域名并启用HTTPS

    • 为了品牌统一和方便记忆,并且后续也可能更换图床链接,为了保证链接不变性,我将子域名(用于图床)通过 CNAME记录 直接指向OSS Bucket的外部访问端点(Endpoint)。

    • 安全是重中之重:利用1panel使用 Let‘s Encrypt 免费签发了SSL证书,手动添加到oss后台,绑定了这个自定义域名,这下图床也支持https了

  3. 初见成效:服务器压力骤减

    • 将所有博客文章中的图片、视频等静态资源迁移至图床后,效果立竿见影:

      • 节省服务器存储空间:媒体文件不再占用服务器宝贵的SSD硬盘。

      • 释放服务器带宽:图片请求不再走我的小水管服务器,流量压力完全由OSS承接,网站加载速度提升显著。并且我甚至可以在博客主页放视频了,也是秒加载

二、性能飞跃:为图床接入CDN加速

虽然OSS本身访问已经很快,但对于分布在全球的用户来说,直接访问某个固定地域的OSS仍有延迟。于是,下一步自然就是上CDN。

阿里云内容分发网络CDN(Content Delivery Network)是建立并覆盖在承载网之上,由遍布全球的边缘节点服务器群组成的分布式网络。阿里云CDN能分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。

CDN加速原理
alt text

  1. 开通阿里云CDN

    • 在CDN控制台添加加速域名,依然使用之前oss绑定的域名

    • 源站设置:这里选择“OSS域名”作为源站,并选择我创建好的Bucket。阿里云会自动进行授权,非常方便。

  2. 域名解析与HTTPS再部署

    • 将图床域名的DNS解析记录,从指向OSS改为指向CDN分配给的CNAME地址。这是流量开始走CDN的关键一步

    • CDN层面同样需要配置HTTPS。我直接使用了阿里云提供的免费SSL证书(目前一年可以申请20个),结果发现实际上在阿里云证书管理平台上可以一对绑定了该域名的实例进行一键部署证书,这下就不用自己手动上传pem和key文件了。

  3. CDN带来的变化

    • 全球加速:CDN会将我的图片缓存到全球各地的边缘节点。用户访问时,自动从最近的节点获取资源,延迟大幅降低,不过目前我只能通过curl测试,因为刚刚建站资源量还比较小。

    • 缓解源站压力:CDN扛住了99%的图片请求,只有节点上不存在(未缓存)的资源才会回源到OSS取,进一步保护了我的OSS资源。

三、安全加固:专业级的权限管理

这是非常值得强调的一点,也是很多教程会忽略的关键步骤。

  • 没有使用主账户的AccessKey,而是遵循 “最小权限原则”

    1. 在RAM(资源访问管理)中创建了一个子账户

    2. 只为这个子账户授予了管理OSS(AliyunOSSFullAccess)的权限,它无法操作我账号下的ECS、RDS等其他任何服务。

    3. 将子账户的AccessKey配置到PicGo上传工具Halo博客后台中使用。

  • 这样做的好处:即使这个Key不慎泄露,黑客也只能操作我的OSS图床,无法破坏我的服务器或其他云资源,实现了完美的风险隔离,安全性极大提升。


总结与展望

至此,一个高性能、高可用的私人图床就搭建完毕了。总结一下优势:

  • 速度快:全球CDN节点加速,访问无延迟。

  • 成本低:OSS存储费用极低,且有大量免费额度;CDN流量费也远比自己服务器带宽便宜。

  • 更安全:HTTPS加密+RAM子账户权限隔离,无后顾之忧。

  • 用途广:这个图床不仅服务于我的博客,今后写Markdown笔记、技术文档、论坛发帖都可以直接使用,成为了我的统一媒体资源中心

整个过程下来,深感云服务的灵活与强大。用一顿饭的钱,就能享受到企业级的服务和安心,这笔投资非常值得。如果你也在受困于博客加载速度,不妨尝试一下!

循此苦旅,终抵群星