前记

从我开始学习前端我就一直在做着我的个人简历网站,使用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记录


后记

感觉越写越跑偏了,就是这样,如果有问题可以留言

如何对GitHubPages上的静态资源进行CDN加速的更多相关文章

  1. 前端遇上Go: 静态资源增量更新的新实践

    前端遇上Go: 静态资源增量更新的新实践https://mp.weixin.qq.com/s/hCqQW1F8FngPPGZAisAWUg 前端遇上Go: 静态资源增量更新的新实践 原创: 洋河 美团 ...

  2. 国内站点经常使用的一些 CDN 静态资源公共库加速服务

    web开发人员们的福利来了..旨在为大家提供更快很多其它更好的静态资源库的CDN载入库方案! CDN公共库是指将经常使用的JS库存放在CDN节点,以方便广大开发人员直接调用. 与将JS库存放在serv ...

  3. 关于静态资源放在CDN上

    https://www.netlify.com/ https://app.netlify.com/signup?_ga=2.194141613.1097457726.1543799087-101005 ...

  4. HappyAA服务器部署笔记2(nginx的静态资源缓存配置)

    我近期对服务器进行了少量改进,虽然之前使用了nginx反向代理之后性能有所提高,但仍然不够,需要使用缓存来大幅度提高静态资源的访问速度. 服务器上的静态资源主要有这些:png, jpg, svg, j ...

  5. Spring MVC 访问静态资源

    当我们不通过控制器,想直接访问网站上的静态资源时,由于DispatcherServlet的url-patten的通配符的限制,导致系统会认为你访问的是个url映射,这时需要配置一个东西就可以解决问题了 ...

  6. Spring Boot 静态资源处理

    spring Boot 默认的处理方式就已经足够了,默认情况下Spring Boot 使用WebMvcAutoConfiguration中配置的各种属性. 建议使用Spring Boot 默认处理方式 ...

  7. 关于web项目中静态资源加载不了的一些解决思路

    问题的产生: <!--springMVC前端控制器加载--> <servlet> <servlet-name>springmvc</servlet-name& ...

  8. 转转hybrid app web静态资源离线系统实践

    一.前言 目前的转转app是一个典型的hybrid app,采用的是业内主流的做法: 客户端内有大量业务页面使用webview内加载h5页面承载. 其优点是显而易见的,即:web页面上线频度满足快速迭 ...

  9. 在Salesforce中使用静态资源

    静态资源 静态资源是Salesforce中默认的一种数据类型,用户可以上传各种文件,比如zip文件.jpg文件.css文件.图像文件等. 在Visualforce页面.Lightning框架的开发过程 ...

随机推荐

  1. Web.Config全攻略

    一.认识Web.config文件   Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方 ...

  2. 自定义配置节点configSections的使用

    //App.config <?xml version="1.0" encoding="utf-8" ?><configuration>  ...

  3. nacos 发布配置

    server 保留 2 份配置文件,一份在 mysql,一份在本地磁盘,同时在内存中缓存配置文件的 md5 值.当客户端获取配置时,server 直接返回本地磁盘文件,使用的是 sendFile ap ...

  4. Unity 实现物体拖拽

    Unity实现拖拽: 也可以继承Unity EventSystem中的接口实现. 当鼠标按下的时候以左键为例: Using System.Collections; Using System.Colle ...

  5. SQLSERVER 和 ORACLE 查询数据库文件大小

    SQLSERVER: SQLSERVER一个库的文件分为数据文件(行数据)和日志文件两个文件,详情可以在数据库的属性->文件中查看. 在资源管理器中打开文件所在路径可以直接看到这两个文件 但是, ...

  6. 【Linux 应用编程】基础知识

    错误提示 Linux 提供的系统调用API,通常会在失败的时候返回 -1.如果想获取更多更详细的报错信息,需要借助全局变量 errno 和 perror 函数: #include <stdio. ...

  7. vue--路由嵌套

    路由嵌套的SPA实现的步骤: A(/a)组件需要嵌套B组件(/b)和C组件(/c) ①准备嵌套其它组价的父组件 指定一个容器在A组件指定一个容器<router-view></rout ...

  8. ubuntu18.04 安装mongodb并使用Robo 3T连接Mongodb数据库

    1.前提: 系统:ubuntu18.04  64位 数据库:mongodb GUI:Robo 3T  2018.3.0 描述: mongodb 安装在局域网内的ubuntu的机子上面,  在win 下 ...

  9. Golang基本类型整理

    总是用的用的就模糊了,不知道基本的类型有哪些,看来要反反复复弄几次. Golang基本类型整理 基本类型以及定义变量需要注意的 对于基本类型的介绍,感觉这个博客讲的比较透彻,基本上都是从源码的角度来入 ...

  10. Windows Server 2012 上安装 dotNET Framework v3.5

    Windows Server 2012不能直接运行dotNET Framework v3.5安装程序进行安装,系统提供通过服务器管理器的添加功能和角色向导进行安装. 安装的前几个步骤再这里略去,在默认 ...