cdn 对象存储应用实战——博客的搭建
嗯,终于写到实战应用了。这次用自己的亲身经历说说 cdn 和对象存储在个人博客中的的应用。
感兴趣的话,可以看看之前的两篇文章,分别说了《cdn 入门》和《对象存储入门》。
特殊要说明的是,中国大陆域名建议备案,否则可能无法启用 cdn 或者解析服务。
而备案可能需要大陆购买虚拟主机(空间)来协助,中国大陆有了空间,那还整啥 cdn?其实果真如此,意义不是特别大,除非为了 https 访问。
所以以上,有可能导致鸡生蛋 蛋生鸡的问题...
本文不考虑域名备案等问题。默认按已备案,服务均可用情况讨论。
同样的,静态博客和动态博客也不讨论好坏,各有千秋。
个人博客的常见方案
个人自建博客,一般从博客系统、架设、域名上,常见方案不过几种。
博客系统
- 使用动态类技术实现(wordpress ghost 等)
- 使用静态系统(hexo jekyll 手写页面等)
发布环境
- 云主机(虚拟主机)
- 自己架设 VPS 等
- github pages (gitlab pages,coding pages)等
域名
- 使用 github pages 默认域名
- 自己的域名
常见方案
综合上面的集中方式,一般技术类博客常见方案有:
-
使用静态博客系统,部署到 github pages 上。有域名的话,还会自己配置上域名。
优点:不花钱部署,不考虑流量。访问速度慢。
缺点:绑定自己域名,没办法 https。不绑定域名,默认域名不够个性。
-
使用静态或者动态博客系统,部署到廉价虚拟主机上。同时配置自己的域名。
优点:比如阿里云曾经的廉价共享虚拟主机,成本低,速度快,流量有限制,但一般都够用。
缺点:绑定自己域名,没办法 https。
由于自己有 vps 的话,默认你能力较强,基本上就可以 参考之前的文章配置上 cdn 来提速了。本文不再考虑这种情况。
通过上面两种方案,可以看出,除了静态动态博客不一样外,主要问题在于:
-
用了 github pages,速度慢。
-
都不能配置上 https。
本文就是针对这两个问题,来说明如何处理个人博客速度问题和 https 访问问题。
针对 github pages 等静态网站国内化、cdn 处理
本操作,主要是把国外的网站内容转移到国内,方便后续进行 cdn。当然,转移到国内后,也可以直接配置域名,当作 http 网站直接访问。这样等同于你有了一台国内的静态网站的服务器。
真实案例:本博客的 收藏集 栏目。网址:http://collection.yukapril.com
这个栏目采用了静态博客(jekyll)+ github pages 部署方式。并绑定域名。
因为 github pages 国内访问慢,所以直接 cdn 加速就比较吃亏,首次回源各地区都很慢。所以,需要在国内架设服务器进行回源使用。
-
首先要对其开通对象存储功能,用于在国内充当本地服务器。
这里多说一句,貌似腾讯云不能访问 github pages 网站。我曾经没有回源成功。
-
在对象存储里面,配置回源(镜像),内容为 github pages 网址。
这里需要注意:github pages 访问必须是域名形式,不能是域名后面带有路径的形式(比如
http://yukapril.github.io/collection
)。因为这两种形式,生成的页面资源路径是不同的。你可以用默认的github pages 自己用户名创建一个,或者绑定一个自己的随意域名(这个域名起到过渡作用,不会被用户访问)。
同时,配置上默认首页(静态网站)功能为开启。
好了,到这里国外的资源,已经复制到国内一份了。
-
通过 cdn 部署域名。
如果你期望 https 访问,那么需要自己准备 ssl 证书。当然,很多服务商提供免费一年的服务。不过我还是建议自己单独去申请,因为我发现服务商要么限制只能申请一个,要么就是申请速度很慢。
申请 ssl 的话,可以到这里免费申请:https://freessl.org/。
下面来配置我们自己的域名。
找到 cdn 栏目。增加一条我们希望最终访问的域名记录。
源站类型选择 “对象存储”。之后选择相应的源站就好。
业务类型选择 “全站加速” 或者 “静态加速”。
缓存时间建议选择长一点。因为修改文件后,我一般是通过手动触发缓存刷新形式。如果你懒的这么做,可以设置短一点,它失效后会自动刷新。
如果有 ssl 密钥,那么直接上传配置好就可以。
最后配置好 cname,等待生效后就可以访问了。
至此,我们的网站就配置完成了。如果是 https 访问,注意关注计费。我了解到国内服务商都没有针对 https 免费免流量的情况。
针对虚拟主机 cdn 加速处理
如果你的是动态博客,不论是否国内外,都不能带上对象存储,否则每次都要手动清理对象存储的缓存,比较麻烦。
如果你的是静态博客,但是在国内,也不需要带上对象存储,因为带上了意义不大。
综上,就有这一套直接上 cdn 的方案。
-
首先,确保你的博客域名,是一个无关域名。如果能 IP 访问的话,无所谓。
这一步要保证你的博客可以通过备用域名进行连接,或者 IP 进行连接。到时候让 cdn 回源使用。
如果你没有办法通过独立 IP 访问,要配置备用域名,因为主域名一会要配置给 cdn 来用。
-
直接开通 cdn。
同样的,如果需要 https 访问,请参考上文先去获取证书。
下面来配置我们自己的域名。
找到 cdn 栏目。增加一条我们希望最终访问的域名记录。
源站类型选择 IP 或者 “源站域名”。
注意调整下回源 HOST:如果是 IP 回源,而且你的 IP 不是独立 IP,或者需要通过主机头进行区分的话。此时注意配置好回源主机头。建议采用第一步的备用域名,这样省事。当然也可以在主机上加一条 cdn 加速域名的主机绑定记录。
业务类型选择 “全站加速” 或者 “静态加速”。
缓存时间建议选择长一点。因为修改文件后,我一般是通过手动触发缓存刷新形式。如果你懒的这么做,可以设置短一点,它失效后会自动刷新。
如果有 ssl 密钥,那么直接上传配置好就可以。
最后配置好 cname,等待生效后就可以访问了。