前记

从我开始学习前端我就一直在做着我的个人简历网站,使用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. JS实现数组排序:升序和降序

    如果指明了 compareFunction ,那么数组会按照调用该函数的返回值排序.即 a 和 b 是两个将要被比较的元素: 如果 compareFunction(a, b) 小于 0 ,那么 a 会 ...

  2. kubernets部署微服务电商平台

    一.准备条件 1) 确保kubernetes可以访问:reg.yunwei.edu镜像库(vim /etc/hosts) [root@cicd yml]# cat /etc/hosts 127.0.0 ...

  3. spss中如何处理极端值、错误值

    spss中如何处理极端值.错误值 spss中录入数据以后,第一步不是去分析数据,而是要检验数据是不是有录入错误的,是不是有不合常理的数据,今天我们要做一个描述性统计,进而查看哪些数据是不合理的.下面是 ...

  4. c++中byte数组与字符串的转化

    我们不讨论与字符集有关的内容,只讨论在字节流传递过程中的问题. 我们在做一系统操作时会需要使用到数据流,比如接收网络数据,文件数据,图片数据,原始数据大多是以byte数组的形式提供,与其它语言(c#, ...

  5. Java——ArrayList源码解析

    以下针对JDK 1.8版本中的ArrayList进行分析. 概述     ArrayList基于List接口实现的大小可变的数组.其实现了所有可选的List操作,并且元素允许为任意类型,包括null元 ...

  6. oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集

    1 怎样执行一个sql脚本文件,这个脚本文件写了一系列的sql语句集,比如sql.sql 放在D:\MyEclipse 8.6\Workspaces\OASystem\WebRoot\sql.sql下 ...

  7. 转 appium grid分布式环境搭建

    https://blog.csdn.net/ljl6158999/article/details/80803239 说起grid,了解selenium的人肯定知道,他就是分布式的核心.原理是简历中心h ...

  8. jmeter正则提取器提取指定位置的字符串

    1.需求:提取登录后的凭证ticket供系统其他接口调用 2.登录接口返回的格式如下: { "ret_code":0, "ret_msg":"logi ...

  9. vue中的provide和inject

    vue中的provide和inject:https://blog.csdn.net/viewyu12345/article/details/83011618

  10. HNUSTOJ-1521 塔防游戏

    1521: 塔防游戏 时间限制: 1 Sec  内存限制: 128 MB提交: 117  解决: 38[提交][状态][讨论版] 题目描述 小明最近迷上了塔防游戏,塔防游戏的规则就是在地图上建炮塔,用 ...