直接使用阿里云的OSS+CDN的方案有几大好处:
- 成本低廉。OSS+CDN部署自己的网站每个月的花费远比自己买ECS服务器部署网站花费要少得多
- 大幅降低运维成本。直接使用现成的云服务,无需花精力去维护ECS。
- 极高的可用性。无论阿里云的OSS还是CDN,都已经做好了高可用性,几乎可以保证网站始终可访问
- 极高的访问速度。ECS带宽毕竟有限的,高带宽意味着超高的费用。但是用OSS+CDN这种天然分布式的架构部署网站很轻松的解决了带宽问题,极大地提升了用户的访问体验。
一、OSS与CDN的购买与流量计费
1.购买之前的准备
- 足够的余额(流量不大的话100元余额够用很多月,比ECS便宜得多)
- 备案过的域名(国内云厂商CDN基本都需要绑定自己的域名,国内要求必须备案,所以务必先备案自己的域名)
- 备案可以参考 ICP备案前准备
2.购买OSS与CDN
对象存储OSS服务的基础计费项包括:存储容量,流量,请求次数。此外,OSS还提供存储数据处理服务(如图片处理服务等),会根据您的使用情况单独计量计费,不使用不计费。
(1)访问阿里云OSS价格方案,选择配置
价格图示例如下(请参考官网实时价格):
注意:要使用OSS,需要先创建Bucket
目前,同一地域下每个账号最多可创建30个Bucket。Bucket 的容量无上限,且OSS的读写效率不会因为单个目录下存在大量文件而受到影响,每个bucket可以看做一个文件夹.
(2)访问阿里云CDN价格方案,选择配置
价格图示例如下(请参考官网实时价格):
注意:OSS和CDN都是后付费的服务,因此需要保证账户有足够的余额
3.OSS+CDN的流量计费方式
不管是阿里云还是腾讯云,在CDN的收费模式上应该是一样的。
OSS到CDN间的流量会收费,CDN流出流量会收费,一般情况下,CDN命中率应该是90%左右,还有10%需要回源去OSS取,也就是说OSS最多需要付出的流量费大概约等于CDN流量的10%加OSS存储文件的大小。
由于CDN的单价要低于OSS;理论上使用CDN+OSS,比直接使用OSS要更节省流量费用。
比如,你的网站一个小时有100GB的流量,OSS的单价是0.5元/GB,那你的流量费用是:100x0.5=50元。而使用了CDN,命中率按80%来算;表示OSS只会产生20GB的流量,而CDN流量为0.24元/GB,CDN回源费用为0.15元,则你的流量费用是:100x0.24+20x0.15=27元。
而CDN缓存命中率与内容热点等都有关系,如果你的CDN缓存命中不高的话,可以参考我之前写的一篇博文:CDN访问慢的分析和优化思路
CDN的缓存命中率经过精心优化后,理论上可以达到90%以上,比如我的CDN缓存命中率经过优化后如下图:
只要CDN缓存命中率高,使用CDN就越节省费用;命中率低于60%的,建议直接使用OSS。
二、OSS配置
1.创建 OSS Bucket
- Bucket 名称:可以根据自己喜好任意命名但要求必须唯一
- 区域:无特殊要求的话可以随意选择,但一般会选择离自己近的(如果需要配合ECS走内网代理的话,注意和ECS为同一区域)
- 存储类型:一般选择标准存储,因为博客在后期的访问量还是有的
- 读写权限:我的读写权限为公共读, 你可以配置为私有, 不过私有的访问起来需要凭证, 麻烦点, 可以配置为公共读, 然后设置 referer(在基础设置 -> 防盗链) 来限制访问
注意:一定不能设置为公共读写!
2.配置OSS为静态网站托管模式
默认首页设置为index.html(必须设置),默认 404 页可设置也可以不设置
这项设置以前只能应用于首页,现在 OSS 升级后次级目录也支持跳转,正常情况下无需改动 文件。但如果使用了 CDN,为避免出现莫名其妙的缓存问题,最好以默认页的形式访问网站。
3.用户域名绑定
由于阿里云出了新的规定,自 2018 年 8 月 13 日起,我们使用 OSS 默认域名访问中国大陆、中国香港地区 OSS 上的网页类型文件(mimetype 为 text/html,扩展名包括 htm、html、jsp、plg、htx、stm),Response Header 中会自动加上Content-Disposition:’attachment=filename;’。即从浏览器访问网页类型文件时,不会显示文件内容,而是以附件形式进行下载。所以,我们必须绑定我们自己备案的域名,才能够正常访问网页。
点击 OSS 控制台左侧的Bucket名称,选择域名管理 - 绑定用户域名,绑定用户域名,如果域名是万网(现已被阿里云收购)购买,这里可以自动添加 CNAME 记录,否则需要在域名供应商手动做 CNAME 解析。
4.配置解析域名指向OSS的域名
复制我们的oss的域名,打开云解析DNS页面,之后点击添加记录:
- 记录类型:因为我们需要指向我们的oss域名所以此处必须为CNAME
- 主机记录:根据自己域名情况填写
- 解析线路:默认就好
- 记录值:即为我们第一步中复制的OSS域名
等待 1~2 分钟 CNAME 生效,打开控制台 ping
用户域名,检查是否已定向到 OSS 地址.aliyuncs.com
CNAME 是域名解析的一种,可以理解为把域名重定向到新的地址。
5.配置OSS防盗链
不配置OSS防盗链的话,网站可能会被盗链。这样子对方使用你的OSS资源,而把流量费用算在自己头上,很冤很亏。
具体配置请参考博文:OSS防盗链配置
三、CDN配置
1.使用CDN主要有三个好处:
- 利用CDN的回源流量费用和CDN本身的流量费用都低于OSS的外网流出费用来降低我们的流量成本。OSS 的源文件会被CDN分发到全国的服务器节点上,用户访问时,访问到的是CDN自动给用户分配的最近的节点数据,并不会访问到OSS本身的数据,从而节约了OSS的外网流出流量费用。
- 因为全国大部分地区都有阿里的CDN节点,CDN又会给用户分配最近的节点,所以可以明显提升用户的访问速度。
- 隐藏真实IP,提高网站被攻击的门槛。
2.配置CDN
(1)域名配置
点击 OSS 控制台左侧你的Bucket名称,选择域名管理,找到已绑定的用户域名 ,点击阿里云 CDN 加速标签下的未配置按钮:
上图有一项 CDN 缓存自动刷新非常好用,等完成了 CDN 配置之后记得回来这个页面,把开关打开
在弹出的新页面配置 CDN:
填写信息说明:
- 加速域名, 填写你需要加速的域名, 如
www.kingcrown.top
- 业务类型为图片小文件类型
- 源站类型为 OSS, 选择刚刚在上方创建的 OSS 的域名
- 需要 HTTPS, 端口选择 443 端口, 否则选择 80 端口即可
选择 443 端口之后会出现 回源默认不携带SNI信息 什么是 SNI?, 等会儿要配置 CDN 的 HTTPS 证书, 这里可以忽略这个提示。
CDN 的加速区域可以理解为访客区域,如果想让海外用户也得到加速效果,可以选择全球
(2)提交之后进入审核阶段并获取阿里云分配的 CNAME:
提交之后会进入审核阶段, 稍等一会儿(很快), 就会审核通过.
审核通过状态为配置中, 稍等一会儿, 等待阿里云系统分配 CNAME, 分配完成:
可以看到加速域名对应的 CNAME, 复制后进入云解析 DNS 配置域名解析:
- 记录类型:必须指定为 CNAME
- 主机记录:填写要加速的域名, 我这里就填写了www
- 解析线路:默认就好
- 记录值:填写在 CDN 域名管理中分配的域名, 就是刚刚复制的域名
- TTL 值:域名纪录的最长缓存时间, 默认的10分钟也可
添加完成后在OSS上的域名配置里可以看见完整的域名->CDN域名->OSS域名的解析流程图:
(3)性能优化
个人建议勾选的选项,可以减少部分带宽
保留参数:
Brotli压缩(比智能压缩更先进的算法):
页面优化:
如果还需要更多优化,请参考我的博文:CDN访问慢的分析和优化思路
不配置https的话,OSS+CDN的配置到这就结束了。
(4)配置全站https
回到 CDN -> 域名管理->点击配置->HTTPS配置:
- 配置 HTTPS, 选择开启, 选择自定义上传证书, 给证书起个名字,将申请的 HTTPS 证书的公钥和私钥分别拷贝到对应的输入框内
- 云厂商一般都有免费的SSL证书,可以选择开通
oss管理控制台->域名管理得右上角有个购买云盾证书服务,点击进去便可选择免费版本。
购买成功后,我们在SSL证书管理控制台便可以看到我们的https证书,将这个证书部署到cdn即可。
最后我们便可以通过https协议来访问我们的网站了
以阿里云为例,这是下发后的SSL证书:
然后在CDN的HTTPS配置中,选择配置HTTPS:
并且配置强制跳转和开启HTTP2协议:
为了实现全链路 SSL,顺便把回源协议也设置为 HTTPS:
ping网站域名,看看一系列的配置后,是否能正常访问到
- 受忙时/闲时影响,ms会略有波动,但波动范围一般不超过20ms
开通Https后需要支付https请求费用,不过非常的便宜
四、上传/更新网站
到此为止OSS+CDN的部分已经配置完毕了,只要把静态页面上传到OSS上就搞定了。建议通过oss客户端上传,可以支持批量拖拽上传,而不是在OSS控制台上一个一个上传。
这里我推荐阿里云官方的开源项目oss-browser,因为这个客户端可以跨平台,并且支持记录AK,使用上很方便。
安装完成之后,输入AccessKey
、AccessKeySecret
登录即可,其他都是可选项.
而AccessKey
、AccessKeySecret
需要在云厂商的个人中心中找到,这里以阿里云为例:
点开后获得AccessKey
、AccessKeySecret
:
之后登录oss-browser,界面如下图:
- 可以新建Bucket、上传文件、上传文件夹等等
上传文件至 OSS 不收任何费用
每次上传/更新网站后急于要刷新缓存的话,那就进入CDN的控制台,点击刷新,输入一下要刷新的URL路径即可:
结语
- 本篇文章算下来的话,需要支付一些费用,请了解后再选择要不要使用
- OSS资源存储包+CDN回源流量+CDN流量+HTTPS请求费
- 一套算起来其实费用挺少的,参考本文中的流量计算方法
文章评论