前言
本人咸鱼学生一枚,没多大见识,以下有任何说的不对的地方,欢迎大家指正。
首先本教程是基于 域名已经备案 的前提下进行的,理论上,任何静态页面都可以使用本教程,哪怕是你写的一个小demo网页,想show给别人看,也可以使用,前提是域名已经备案。
域名没有备案的也不要灰心,这里我给出三个解决方案:
一、就是去备案(这不废话吗?)
备案一般必须要有域名服务商的服务器才行,而买服务器又得花很多钱。
(我们玩Hexo的口号是什么?白嫖!)
那么没服务器怎么办呢?
——备案授权码!
上哪搞呢?
鲁迅曾经说过:有需求的地方,必有市场!
(鲁迅:没错,什么都是我说的!)
这就得靠我们强大的某淘了,给个关键字:XXX云服务号
二、就是不备案
强行推广一波我的另一篇优化文章,一样可以获得很高的访问速度:Hexo博客优化
三、使用国外的云服务
备案是“中国特色”,国外的服务器是没有备案一说的。可以尝试 谷歌云 或者 亚马逊的AWS,这里不做过多介绍。
核心方案
开门见山的说,今天的主角:对象存储 + CDN
。
方案其实就是将自己的静态网页文件放到云服务商提供的 对象存储
中,而 对象存储
一般提供的都有pages服务,而且访问速度绝对要远比代码托管平台提供的pages服务快的多,但是这个pages服务,一般只有绑定了域名才可以开启,而且也只能绑定已备案的域名,最重要的是我们还可以使用云服务商提供的CDN
,这样又进一步提升了访问速度,这绝对碾压代码托管平台的pages服务,任你再怎么优化也是没有对象存储快的,更何况还有CDN(付费的当然比免费的好用)。
这个方案的好处是:用远低于购买服务器的价格,就可以获得服务器级别甚至更强的访问性能!
其实会玩的人看到这里,就已经明白怎么搞了,但是为了很多小白我还要再啰嗦一下。
科普
再讲解具体步骤之前,让我们先了解一些基础概念,以便有更好地阅读体验,大佬请忽略
对象存储
:即每个文件都是一个对象, 所有的文件实际是都是在同一个文件夹内,只不过其前缀不同罢了,如果不能理解,就当是一个存储文件的网盘吧。
CDN
: 全称Content Delivery Network即内容分发网络
。 CDN加速意思就是在用户和我们的服务器之间加一个缓存机制,通过这个缓存机制动态获取IP地址根据地理位置,让用户到最近的服务器访问,从而可以得到更快的访问速度。
源站
:即真正存储网站的服务器。(这里指的是我们的对象存储服务器)
回源
: 是指CDN服务器缓存的资源过期后,从源站
获取最新的访问资源,然后再缓存到CDN服务器,供下次访问
各云服务商的价格对比
云服务商有很多,大家可以根据自己的喜好选择,这里我只提供下参考,说的不对的地方请多多指正。
可能很多人会问,说好的白嫖呢?看下价格就明白了,花不了多少钱的。
服务商的选择因素有很多,比如服务、价格、稳定性等,由于我本人接触云服务这方面时间较短,没什么发言权,那我就只谈谈我们这些「平民」最关心的价格这方面,做个价格对比。
提供对象存储的云服务商有:阿里云、腾讯云、七牛云、又拍云等。
考虑到各服务商的价格可能会有所变动,本节目前提供的价格参考日期为2019.11.26。
阿里云
先参考阿里云官方的计量项和计费项、OSS计费 和 CDN计费 文档。
CDN的计费方式有两种:按流量计费 和 按带宽峰值 计费,这里推介选择
按流量计费
。OSS计费项有很多(各种请求和以及所占容量大小的计费等,都很少,这里不做比较),对于几十M的静态博客来说:
- 当只用 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
- 当只用 OSS 时,主要费用就是
是不是很便宜?相比于购买服务器。
腾讯云
- 当只用COS时
- 外网下行流量费:0.5元/GB
- 当用COS + CDN时
回源流量
+CDN流量
= 0.15元/GB + 0.21元/GB =0.36
元/GB
值得一说的是:腾讯云对这两个服务的新用户是有半年的优惠的。
COS:免费50GB 标准存储容量,6个月
CDN:送6个月的免费流量,每月50G,随便High!
七牛云
- 七牛的对象存储10G内是免费的
- 外网流出流量费用:0.29元/GB
- CDN回源流量费:10G内免费
- CDN-HTTP下载流量费:10G内免费
- CDN-HTTPS下载流量费:0.28元/GB
- CDN-HTTP + 对象存储 = 免费
- CDN-HTTPS + 对象存储 = 0.28元/GB
- (因为回源10G内免费,就只剩下CDN流量费了)
七牛是不是很良心?但是有次使用中,七牛的控制台竟然崩了,控制台居然都能崩掉。
总结
我还是比较推介大家用七牛云,当然求稳的话还是阿里云,毕竟大公司。
我曾经看过一个关于阿里云、腾讯云、华为云的横向评测:结果就是华为云以很低的延迟和很高的带宽碾压另外两位。
具体配置
各服务商的配置大体相同,不做过多赘述,这里以腾讯云为例
创建存储桶
登录腾讯云,点击右上角
控制台
,找到云产品
,开通对象存储
服务。存储桶列表
->创建存储桶
-> 填写信息- 所属地域 选择离自己位置最近的即可(创建后不可更改)
- 访问权限 选择
公有读私有写
- 标签 无所谓
上传文件到COS中
继续操作,点击左侧
工具
->客户端下载
-> 选择对象系统的 COSBrowser 下载 -> 然后安装即可点击右上角 账号 下的
访问管理
->左侧的访问密钥
可能会有风险提示,点击
继续使用
复制
SecretId
和SecretKey
这两个是读写COS的密钥,不能泄露!打开 COSBrowser,输入刚才复制的两个值,点击
登录
。在 COSBrowser中,左下角点击
同步
本地文件夹选择
Hexo根目录
中的public
文件夹(public文件夹中的文件为Hexo生成的静态网页文件,我们需要将这些文件放到COS中,供别人访问;git部署的文件也是这些文件!)
存储桶目录选择刚才创建的存储桶,存储桶目录留空(目的:将public文件夹中的文件上传到存储桶的根目录)
点击
开始同步
- 之后可以到网页版的控制台确认文件有没有上传上去。
开启pages服务
- 回到控制台,
对象存储
->存储桶列表
->基础配置
->静态网站
->开启
- 访问节点:即 该COS的访问地址
- 强制 HTTPS:建议开启
- 索引文档(主页):填
index.html
- 错误文档(404页面):如果有404页面填上404页面的地址,如果没有留空即可。
- 重定向规则:设置发生4XX错误时,要填跳转到哪个页面,可以不配置。
- 保存
之后就可以直接复制 访问节点 的地址到浏览器打开,看能不能访问。
绑定域名并开启CDN
对象存储
->存储桶列表
-> 点击刚才创建的存储桶 -> 点击域名管理
找到 自定义域名加速,点击
添加域名
(只能添加已备案的域名)域名:你的域名(将此域名添加到域名解析那里)
加速地域:国内加速
源站类型: 静态网站源站(非常重要!!)
回源鉴权:不用打开(公共读不需要鉴权)
CDN 鉴权:不用设置
点击保存即可
复制该项的CNAME,然后配置到域名解析那里。
等待部署,一般5分钟作用;部署成功后试下自己的域名能不能访问
配置HTTPS证书
先在域名服务商那里申请好免费https证书 (也可以在其他地方申请),这里以阿里云为例。
然后点击对应项的下载
选择其他
下载后的是一个压缩文件,解压后有两个文件 *.pem
和 *.key
,编辑器将其打开。
控制台这边选择 内容分发网络
-> 证书管理
-> 配置证书
- 域名:选择刚才申请证书的域名
- 证书来源:自有证书
- 证书内容:将刚才以.pem结尾文件的内容粘进来
- 私钥内容:将以.key结尾文件的内容粘进来
- 回源协议:协议跟随
- 最后提交即可!
- 成功之后就可以使用https协议
剩下的防盗链、IP访问限频配置之类的各自慢慢摸索、不配置也行。
刷新CDN缓存
为什么要刷新CDN缓存?
因为一旦我们更新了博客的内容,而别人访问的却还是CDN节点缓存的内容,这体验就很糟糕
如果你想刷新某个页面
内容分发网络
->刷新预热
->URL刷新
-> 填入URL提交刷新即可如果你想刷新整站内容
在
目录刷新
填入URL,选择刷新全部资源,提交刷新即可
总结
可能很多小伙伴还有点蒙,让我们来总结一下以后的使用流程:
- 先生成静态文件(hexo cl&hexo g)
- 再将生成的文件上传到对象存储,要利用腾讯的上传软件上传
- 刷新CDN缓存(因为CDN都是有缓存的,你不刷新,别人访问的都是旧资源)
但是这样总归还是有些麻烦,不过云服务商都提供了各种SDK,如果你足够牛逼,你可以手写一个一键上传脚本,并自动更新CDN缓存。如果你跟我一样是个菜鸡,那还是老老实实用服务商给的“轮子”吧。