如何对GitHubPages上的静态资源进行CDN加速
前记
从我开始学习前端我就一直在做着我的个人简历网站,使用GitHubpPages的预览功能进行预览,但是由于最近我的个人简历,不停的丰富,图片增多,而且将css和js文件用webpack打包后变成一个很大的问价,网页的加载速度就变的像龟速一样,所以我决定将静态资源用CDN加速
选择运营商
我通过谷歌搜索,找到了几家提供CDN加速服务的网站,例如七牛网、云盾等,最后我选择了七牛网,因为七牛网实名认证先成功了
操作步骤
首先,现在对象储存中新建一个储存空间
然后在内容管理那里上传文件,因为新注册的账号会有一个试用域名,期限是一个月,所以可以现在买域名,并备案(好像一定需要备案号才可以用)
在上传完文件之后,就会自动帮你生成cdn链接,你就可以直接将他引入到了页面中了
出现问题
但是当我将CDN链接替换了源文件时,发现失败了
发现区别了吗?是因为http协议被更改成了https,为什么会这样呢
因为当使用 username.github.io 作为预览域名时,GitHub会确保安全强制把所有请求变成https协议的,所以当使用http协议的加速链接,就会自动被更改从而找不到文件
更换域名
我再次使用上了谷歌查找解决方法,我发现原来只要把 username.git.io 的域名替换成自己的域名就可以进行设置了,
为此我在国外的 namesilo 网站上购买了一个域名(为什么不在国内买,因为国内要备案太麻烦了)选择好自己喜欢的域名后,就可以点击购买了,初次购买需要注册,网上还有优惠码可以搜索一下
买完之后就可以去更换域名了,在DNS解析那里
如图所示,将A换成GitHub的IP地址
CNAME指向你的 username.github.io
GitHub的配置
GitHub你的项目目录中添加一个CNAME文件(不要后缀),里面写上你购买的域名,不需要加协议,git push 后就可以了,并不需要做什么特殊的操作
从域名到DNS的一点理解
域名
域名就是一串字符,为了就是让人容易看懂,它的作用就是为了给IP地址起一个人类能记得住的名字,现在域名演变成了一种资源,一个好看的域名要几千甚至几万美元一年
根域
根域名服务器(英语:root name server)是互联网域名解析系统(DNS)中最高级别的域名服务器,负责返回顶级域的权威域名服务器地址。它们是互联网基础设施中的重要部分,因为所有域名解析操作均离不开它们。由于DNS和某些协议(未分片的用户数据报协议(UDP)数据包在IPv4内的最大有效大小为512字节)的共同限制,根域名服务器地址的数量被限制为13个。幸运的是,采用任播技术架设镜像服务器可解决该问题,并使得实际运行的根域名服务器数量大大增加。截至2017年11月,全球共有800台根域名服务器在运行。(这是摘自维基百科的信息)
反应在域名上例如 ‘baidu.com’ 其实是缩写,全拼是 ‘baidu.com.' 最后面的这个点就是根域
顶级域名
常用的顶级域名分为几种:
1 国家顶级域名,例如.cn,.jp
2 机构顶级域名,例如.com,.edu
3 新顶级域名,例如.xyz,.top
二级域名
我们能够申请到的一般都是二级域名,就是在顶级域名的旁边加上一些字符,例如 ‘baidu.com’, ‘qq.com’
子域名
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。
当我们购买了一个二级域名,理论上是可以分成很多三级域名的,但是数量有没有限制,这个理论上是没有,但是会由域名商决定可以解析多少个记录,域名只是你IP地址的一个导向标
有关DNS
查阅资料我们很容易看到有关DNS的解释:DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
简单的说就是DNS将网址变成了IP地址,通过IP地址才能访问服务器
那么,DNS服务器上都存了些什么?最主要的就是能够完成域名解析的一些记录,例如下面这些
A记录
A记录在DNS中的意义就是,域名到IPV4地址的转换。
所以,当我们在DNS服务器中添加一个A记录时,是告诉服务器,将某个特定的域名映射到一个ip地址。这个算是最简单直白的转换规则了。
CNAME记录
CNAME的意义,简单说就是别名,即将一个域名射到另一个域名(区别于A记录的ip)。
再由另外一个域名提供IP地址
AAAA记录
和单个A不同,四个AAAA代表着域名到IPV6地址的转换
域名映射到一个IPV6地址
NS记录
域名服务器记录,如果需要把子域名添加给其他DNS服务商解析,就需要添加NS记录
后记
感觉越写越跑偏了,就是这样,如果有问题可以留言