使用keycdn加速网站访问

keycdn

想要加速网站访问无外乎将静态文件CDN托管,一些免费云加速有debuff效果,而一些收费CDN自定义域名需要备案,使用https://ishell-imgs.b0.upaiyun.com/blog/1469776945/01.png 外链肯定没有使用https://img.ishell.me/img/01.png看着开心,鉴于此,查找了一下国外的CDN服务商,选择了口碑不错的keycdn为网站加速

keycnd空间类型简介

他家的CDN服务分为pull zonepush zone

  • pull zone就是加速访问域名,你告诉它你要加速的网站如http://example.com,它分配给你一个域名blog-4xx7.kxcdn.com,通过这个域名访问就是通过cdn访问网站了,你可以简单的在你的网站程序中将原先的资源名称替换成CDN,就可以加速你的资源加载了。但是如果你的网站有不少静态页,用户是不会直接通过这个CDN访问网站的,那么就需要再指定一个blog-4xx7.kxcdn.com的别名,比如http://www.example.com,这个在keycdn的面板Zonealiases添加记录,并且在你的域名服务商处添加CNAME指向,这样,当别人访问http://www.example.com的时候就是通过CDN来访问你的网站了

  • push zone就是云存储,把你的照片等文件上传到里面,然后就可以加速访问了。 同样,它会分配给你一个域名,你可以使用这个域名来访问你的资源,不过既然用keycdn,那肯定是要绑定自己的域名,这个也在Zonealiases添加记录并添加域名商处的CNAME记录

好了,其实很简单的概念,我比较罗嗦...

创建letsencrypt的push zone

之前创建的网站是HTTPS的,那就需要创建HTTPS的pull zonepush zone,不然会导致CDN不能通过HTTPS访问,图片存储也会因为HTTP导致浏览器会给一个感叹号

先来创建一个支持HTTPS的push zone,官方文档:Use LetsEncrypt With KeyCDN to Enable TLS

  1. 创建push zone类型空间,点击Show Advanced Features加载更多选项,在SSL选择框选择letsencrypt
  2. 添加DNS记录,如img.ishell.me指向img-4xx7.kxcdn.com,等待其生效,可以访问DNS检查工具查看其解析情况DNS Check Tool
  3. Zonealiases处添加img.ishell.me指向刚创建的img空间,静等设置完成即可通过https://img.ishell.me访问图片存储

PS: 需要注意的是如果之前胡乱创建过别名,须先删除,在域名解析生效之前,不能添加Zonealiases

创建Custom SSL的pull zone

作为一个静态站,没有动态内容,所以整个网站都是可以通过CDN进行加速的。刚才介绍pull zone的时候已经介绍了使用方法和设置别名,想要https://blog.ishell.me通过CDN访问博客,那么在源网站处就不能用这个域名,不知道正不正确,我的想法是再创建一个https://blog2.ishell.me域名,这个域名可以直接访问服务器,然后https://blog.ishell.me指向CDN,CDN再指向https://blog.ishell.me就可以实现整个静态网站的加速了。

所以,需要继续使用在上篇Lets Encrypt and HTTP2中介绍了的自动申请Let's Encrypt的脚本,使用脚本可以生成证书,不同的域名,证书是不一样的。

我简单的把之前的用于生成证书的目录复制了一份,然后在副本中修改配置信息,记得添加DNS记录,修改nginx配置以便验证用,这时,使用https://blog2.ishell.me可以正常访问网站就说明配置成功,接下来开始创建pusll cdn为网站加速

官方文档:How to setup Custom SSL

  1. 首先创建一个HTTP的pull zone
  2. 添加DNS的CNAME记录,如blog到pull zone的默认域名
  3. Zonealiases中添加别名
  4. 编辑push zone,在Show Advanced Features中为SSL选择custom
  5. 在新出现的Custom SSL Certificates中添入脚本生成的example.chained.crt内容,在Custom SSL Private Key内填入example.com.key的内容,静等设置完成,即可通过https://blog.ishell.me/访问CDN,有缓存的内容不会再请求源站

当需要更新页面的时候,可以点击Manage下的Purge等选项清理缓存

PS:登陆key-cdn的FTP时反复登录不上时,反复琢磨,添加代理登录成功...虽然FTP不能直达,不过经测试,存放的图片访问速度还是不错的,从github page的温床中搬出来,虽架设完成也使用了CDN,但是无论是图片内容的替换,以及网站速度优化,安全方面的优化等等,想让一个网站在服务器上稳定运行,折腾才刚刚开始