利用对象存储和CDN轻松搭建超快的静态网站
Warning
按量付费的CDN与对象存储方案存在被刷流量的风险,请仔细斟酌后,谨慎使用。
如果您喜欢我的创作,可以赞助我。您的支持将帮助我继续创作更多优质内容,感谢您的慷慨支持!
一、前言
首先本教程是基于 域名已经备案 的前提下进行的,任何静态页面都可以使用本教程,哪怕是你写的一个小demo网页,想show给别人看,也可以使用,前提是域名已经备案。
域名备案的解决方案:
1、去备案(这不废话吗?)
备案一般必须要有域名服务商的服务器(例如腾讯云需要三个月以上服务器),而服务器又得花很多钱…
那么没服务器怎么办呢?——备案授权码方案
这就得靠我们强大的某宝了,关键字:XXX授权码
2、使用国外的云服务
备案是“中国特色”,国外的服务器是没有备案一说的。
可以尝试 谷歌云 或者 亚马逊的AWS 等国外或者中国香港地区的云服务商。
二、核心方案
核心方案:对象存储 + CDN
方案其实就是将自己的静态网页文件放到云服务商提供的 对象存储 中,而 对象存储 一般提供的都有pages服务,而且访问速度远比代码托管平台(GitHub、Gitee)提供的pages服务快的多,但是这个pages服务,只有绑定了绑定已备案的域名才可以开启。
最重要的是,我们还可以使用云服务商提供的CDN,这样又进一步提升了访问速度,这绝对碾压代码托管平台的pages服务,任你再怎么优化也是没有对象存储快的,更何况还有CDN(付费的当然比免费的好用)。
用远低于购买服务器的价格,就可以获得服务器级别甚至更强的访问性能
腾讯云CND:50.3ms ✌🏻
腾讯云服务器:62ms
Gitee Pages:54.3ms
GitHub Pages:61ms
三、小科普
- 对象存储:每个文件都是一个对象, 类似一个存储文件的网盘。
- CDN: 内容分发网络。CDN依靠部署在各地的边缘服务器,使用户就近获取所需内容。 从而可以得到更快的访问速度。
- 源站:即真正存储网站的服务器。(这里指的是我们的对象存储服务器)。
- 回源:是指CDN服务器缓存的资源过期后,从源站获取最新的访问资源,然后再缓存到CDN服务器,供下次访问。
四、各云服务商的价格对比
对象存储和CDN相比于服务器是花不了多少钱的。
服务商的选择因素有很多,比如服务、价格、稳定性等,由于我本人接触云服务这方面时间较短,没什么发言权,那我就只谈谈我们这些「平民玩家」最关心的价格这方面,做个价格对比。
1、阿里云
CDN的计费方式有两种:按流量计费 和 按带宽峰值 计费,这里推介选择 按流量计费。
- 当只用 OSS 时,主要费用就是外网流出流量 的费用
- 00:00-08:00(闲时):0.25元/GB
- 8:00-24:00(忙时):0.50元/GB
- 当使用 OSS+CDN 时,因为CDN需要到源站获取资源,就不需要从外网获取了,所以这时的费用就是
- 回源流量 + CDN流量费用
- 0.15元/GB + 0.24元/GB = 0.39元/GB
2、腾讯云
- 当只用COS时
- 外网下行流量费:0.5元/GB
- 当用COS + CDN时
- 回源流量+CDN流量 = 0.15元/GB + 0.21元/GB = 0.36元/GB
腾讯云对这两个服务的新用户是有半年的优惠的。
COS:免费50GB 标准存储容量,6个月
CDN:送6个月的免费流量,每月50G!
五、部署方式
以腾讯云为例
部署要求
域名已在国内备案
备案一般必须要有域名服务商的服务器(例如腾讯云需要三个月以上服务器),而服务器又得花很多钱…那么没服务器怎么办呢?可以使用「备案授权码方案」
创建存储桶
登录腾讯云,点击右上角控制台,找到云产品,开通对象存储服务。
存储桶列表 → 创建存储桶 → 填写信息
所属地域:选择离自己位置最近的即可(创建后不可更改)
访问权限:选择公有读私有写,高级选项不修改
上传到对象存储
下载COSBrowser客户端,选择相应系统的版本(当然也可以选择Web版)。
将静态文件上传到存储桶根目录。
对于hexo博客,public文件夹中的文件为Hexo生成的静态网页文件,我们需要将这些文件放到COS中,供别人访问。
对于Vue、React项目,需将dist文件夹中的文件上传。
开启Pages服务
回到腾讯云控制台页面,进入刚刚创建的桶的配置管理页面
在左侧选择 基础配置 → 静态网站,开启静态网站
进行配置
之后就可以直接复制 访问节点 的地址到浏览器打开,尝试访问。
绑定域名并开启CDN
找到 自定义CDN域名加速,点击添加域名(只能添加已备案的域名)
- 域名:你的域名
- 加速地域:国内加速
- 源站类型: 静态网站源站(非常重要!!)
- 回源鉴权:不用打开(公共读不需要鉴权)
- CDN 鉴权:不用设置
复制该项的CNAME,然后配置到域名解析那里。
将设置的域名,在域名提供商的DNS解析中配置CNAME。
等待部署,一般5分钟左右;部署成功后试下自己的域名能不能访问
六、刷新CDN缓存
用于实现页面的更新
覆盖存储桶的文件
将原始文件删除,并上传新的文件。
刷新CDN缓存
在腾讯云控制台中选择内容分发网络,在左侧菜单中选择刷新预热。提交URL更新即可。