前记

从我开始学习前端我就一直在做着我的个人简历网站,使用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. Python学习之==>接口开发

    一.开发接口的作用 1.在别的接口没有开发完成的时候可以模拟一些接口以便测试已经开发完成的接口,例如假的支付接口,模拟支付成功.支付失败. 2.了解接口是如何实现的:数据交互.数据返回 3.开发给别人 ...

  2. 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零

    期末考试的编程题 返回   这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...

  3. eslint 修改规则 函数形参不使用报错

    函数再定义形参以后未使用就会出现报错的问题,需要设置一项eslint 规则 再.eslintrc.js   rules里面添加 "no-unused-vars": "of ...

  4. 【HANA系列】SAP HANA Studio使用insufficient privilege 问题

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA Studio使 ...

  5. python pandas 自动生成批量测试数据插入数据库 mysql

    1.python连接数据库游标 # coding:utf-8 from sqlalchemy import create_engine class connet_databases: def __in ...

  6. ---Mock---基本使用

    一.mock解决的问题 开发时,后端还没完成数据输出,前端只好写静态模拟数据.数据太长了,将数据写在js文件里,完成后挨个改url.某些逻辑复杂的代码,加入或去除模拟数据时得小心翼翼.想要尽可能还原真 ...

  7. kafka消费者脚本无法启动问题

    console-consumer can't rebalance after 4 retries 解决方案:kafka0.9版本换成1.0版本 究竟是怎么回事我也不知道

  8. org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents mor

    今天在用junit测试mybits程序是遇到一个问题,报错为: org.apache.ibatis.exceptions.PersistenceException: ### Error queryin ...

  9. 打印 PRINT

    打印 PRINT 字符串和数值类型 可以直接输出. print(1) #out:1 print('a') #out:a 变量 无论什么类型,数值,字符串,列表,字典...都可以直接输出 n = 1 s ...

  10. Luogu P1315 [NOIP2012]观光公交

    题目 每次把加速器用在可以是答案减少最多的地方就即可.(这不是废话吗?) 具体而言,我们处理出: \(sum_i\)到\(i\)为止下车人数之和. \(t_i\)在\(i\)最晚的上车的人的上车时间. ...