一直以来我博客的图片加载速度都不怎么样,因为本身服务器就是1M的小水管,不加CDN根本就没法用。可就算加上了腾讯云的CDN,图片的加载速度也并没有太大的提升,虽然说整体比不套CDN要快的多,但是因为命中率和回源的关系,图片的加载速度还是没有达到一个让人满意的状态。
前几天看到朋友在优化自己博客的结构,将很多图片替换为外链,而图床正是自己利用阿里云的OSS搭建的,这样能极大的提升图片的加载速度。
我也借鉴了这一思路,使用OSS套CDN来搭建了自己的私人图床,通过替换外链的方式来优化了首页的加载时间。
我的OSS: https://oss.haor233.com/
图床: http://pic.haor233.com/ (暂不对外开放注册)
本文将会介绍阿里云OSS使用上的一些经验,以及如何使用OSS+CDN来搭建一个HTTPS图床。
准备工作
申请OSS
阿里云官方快速入门: https://help.aliyun.com/document_detail/31883.html?spm=a2c4g.11186623.6.573.1be56ab3t4RPWB
OSS产品页: https://www.aliyun.com/product/oss
总的来说OSS的申请非常的简单,但是有几点是我们需要注意的。
首先,我们需要在控制台创建一个Bucket,这个Bucket就是我们的储存桶。因为我们是用来搭建图床的,所以读写权限一定要设置为公共读。区域自然是选择国内,越近越好。储存类型要选择标准存储,也就是LRS。后面如果要购买资源包的话就得根据这些选项来买,否则资源包不会被使用到。
分配域名
申请结束后我们可以在控制台看到Bucket域名,这个域名非常重要,但是太过冗长。我们需要另外给这个Bucket分配一个简单的域名。
我们需要前往你所购买的域名的控制面板,找到域名解析并添加一条CNAME记录,来指向你的Bucket域名。分配域名还有个原因就是,不分配域名的话,直接用 Bucket域名访问图片链接会直接跳转到下载,而不会正常的访问图片。
当然,也不用着急添加CNAME记录,因为在后面我们会为OSS套上阿里的CDN来优化访问以及降低资费。添加CNAME记录的操作可以等后面套CDN的时候再做。
申请SSL证书
由于我的博客使用了SSL,所以里面的图片元素也必须使用SSL。我们可以申请免费的SSL证书来给OSS使用,以保证我们的图片外链是以HTTPS开头的。
申请渠道很多,阿里云腾讯云百度云这些国内知名的云平台都可以申请到,过程不多赘述。
PS: 也可以使用阿里云CDN的一键签发功能。
开始部署
Lsky Pro
Lsky Pro(兰空)是一个免费开源的图床项目,它可以轻松部署在WEB端提供简单方便的服务。
官网: https://www.lsky.pro/
项目地址: https://github.com/wisp-x/lsky-pro
使用手册: https://www.kancloud.cn/wispx/lsky-pro
这个图床搭建起来还是很容易的,只是有几个坑需要注意一下。一是记得开启PHP的fileinfo拓展,二是将网站的运行目录改为./public,三是记得写Rewrite规则。 这三点都是比较容易踩的坑 。
详细的安装使用流程可以参见作者的使用手册,该手册从兰空的安装配置到它支持的各种对象储存服务的使用都有详细的介绍说明。
CDN
使用CDN主要有两个好处:
1、利用CDN的回源流量费用和CDN本身的流量费用都低于OSS的外网流出费用来降低我们的流量成本。OSS 的源文件会被CDN分发到全国的服务器节点上,用户访问时,访问到的是CDN自动给用户分配的最近的节点数据,并不会访问到OSS本身的数据,从而节约了OSS的外网流出流量费用。
2、因为全国大部分地区都有阿里的CDN节点,CDN又会给用户分配最近的节点,所以可以明显提升用户的访问速度。