给 Github pages 用上 CDN加速

阿里云 & 腾讯云

Posted by Mcoder on December 27, 2019 文章阅读量

给博客用上 CDN 加速

我们先假设大家已经知道如何使用 github pages 托管自己的静态博客网站了,这样我们不用花钱自己维护一个云服务器,也不需要在C某家充满广告的博客网站上写博客,很美好对吧。 但 Github pages 在国内的效果不佳,常常出现打开缓慢、或者无法打开等情况。

为了提高网站的访问速度,除了减少网页的请求数量,精简网页所依赖的js、css文件外,最常用的就是使用CDN缓存大文件到节点服务器上,这样用户访问网站的时候就会从最近的,响应最快的CDN节点服务器上拉取资源,从而提高了大文件的下载速度。

给 github 博客加速需要哪些东西呢?

  1. Github Pages博客;
  2. 一个自己的域名;
  3. 给自己域名备案;
  4. 一个免费的SSL证书;

阿里云 全站加速 DCDN

阿里云加速可以使用全站加速功能。

腾讯云 内容分发网络 CDN

  1. 为Github pages增加腾讯云cdn加速功能
  2. Github Pages + CDN全站加速

循环 重定向 解决方案

我碰到了出现了重定向次数过多导致浏览器无法打开网页的问题。起初根据接入CDN/WAF后出现循环重定向问题的排查记录博客做分析,做了些调整,问题短暂性解决。然后之后,还是数次出现了重定向多次的错误。

产生错误的原因

之后偶然间我注意到了阿里称为回源域名、腾讯称为回源HOST的东西

我错误的将这个回源域名设置成了github的域名mcoder2014.github.io,我以为这个回源的概念是,我要去哪一个仓库去取资源,但似乎是CDN用哪个网站名称去取资源。

github pages 设置自定义域名

github pages 设置好了 CNAME 自定义域名之后,便强制用户的浏览器跳转到 用户自定义域名。 同样,我们在不使用CDN时,打开https://mcoder2014.github.io也会被跳转到[https://mcoder.cc][https://mcoder.cc],而CDN中错误的设置了回源host,会导致出现一个死循环,即 github 通知跳转了,结果CDN依旧使用https://mcoder2014.github.io去回源取资源。

就向下图所画的。

而正确的流程如下,CDN在HTTP请求中携带正确的地址,于是github便会将正确的资源发送给CDN,也就解决了循环重定向的问题。

Reference

  1. 接入CDN/WAF后出现循环重定向问题的排查记录