avatar

阿里云域名+Github Pages绑定教程

域名购买

阿里云

腾讯云

对比了一下,.com后缀域名太贵了,最终选择了阿里云的xyyum.icu域名,作为个人网站使用足够了,整了个3年套餐先用着,并且后缀名ICU对于程序员可是有特殊意义的,也符合我身体虚弱的气质,嘿嘿!

DNS域名解析

1、什么是域名解析?

域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。

记录类型

1.什么是A记录?

A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。

2.什么是CNAME记录?

即:别名记录。这种记录允许您将多个名字映射到另外一个域名。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就 http://www.mydomain.com/mail.mydomain.com。实际上他们都指向 “host.mydomain.com”。

3.A记录和CNAME进行域名解析的区别

A记录就是把一个域名解析到一个IP地址(Address,特制数字IP地址),而CNAME记录就是把域名解析到另外一个域名。其功能是差不多,CNAME将几个主机名指向一个别名,其实跟指向IP地址是一样的,因为这个别名也要做一个A记录的。但是使用CNAME记录可以很方便地变更IP地址。如果一台服务器有100个网站,他们都做了别名,该台服务器变更IP时,只需要变更别名的A记录就可以了。

4.使用A记录和CNAME哪个好?

域名解析CNAME记录A记录哪一种比较好?如果论对网站的影响,就没有多大区别。但是:CNAME有一个好处就是稳定,就好像一个IP与一个域名的区别。服务商从方便维护的角度,一般也建议用户使用CNAME记录绑定域名的。如果主机使用了双线IP,显然使用CNAME也要方便一些。

A记录也有一些好处,例如可以在输入域名时不用输入WWW.来访问网站哦!从SEO优化角度来看,一些搜索引擎如alex或一些搜索查询工具网站等等则默认是自动去掉WWW.来辨别网站,CNAME记录是必须有如:WWW(别名)前缀的域名,有时候会遇到这样的麻烦,前缀去掉了默认网站无法访问。

有人认为,在SEO优化网站的时候,由于搜索引擎找不到去掉WWW.的域名时,对网站权重也会有些影响。因为有些网民客户也是不喜欢多写三个W来访问网站的,网站无法访问有少量网民客户会放弃继续尝试加WWW.访问域名了,因此网站访问浏览量也会减少一些。

也有人认为同一个域名加WWW.和不加WWW.访问网站也会使网站权重分散,这也是个问题。但是可以使用301跳转把不加WWW.跳转到加WWW.的域名,问题就解决了。

CDN与DNS知识点

什么是CDN

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

典型的CDN系统由下面三个部分组成

  • 分发服务系统

    最基本的工作单元就是Cache设备,cache(边缘cache)负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用 户。同时cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。Cache设备的数量、规模、总服务能力是衡 量一个CDN系统服务能力的最基本的指标

  • 负载均衡系统

    主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡(GSLB)和本 地负载均衡(SLB)。GSLB主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的cache的物理位置。SLB主要负 责节点内部的设备负载均衡

  • 运营管理系统

    分为运营管理和网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,包含客户管理、产品管理、计费管理、统计分析等功能。

CDN的过程

使用CDN的方法很简单,只需要修改自己的DNS解析,设置一个CNAME指向CDN服务商即可。

用户访问未使用CDN缓存资源的过程为:

  1. 浏览器通过前面提到的过程对域名进行解析,以得到此域名对应的IP地址;
  2. 浏览器使用所得到的IP地址,向域名的服务主机发出数据访问请求;
  3. 服务器向浏览器返回响应数据

使用CDN后

  1. 当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
  2. CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
  3. 用户向CDN的全局负载均衡设备发起内容URL访问请求。
  4. CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
  5. 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
  6. 全局负载均衡设备把服务器的IP地址返回给用户
  7. 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

上面的字太多,有点绕?通俗点就是用户访问的资源原本是存放在你自己的服务器,通过修改DNS让用户根据IP等情况来选择合适的CDN缓存服务器来获取资源。

CDN的优点

这样做有什么好处呢?

  1. 本地Cache加速,加快访问速度
  2. 镜像服务,消除运营商之间互联的瓶颈影响,保证不同网络的用户都能得到良好的访问质量
  3. 远程加速,自动选择cache服务器
  4. 带宽优化,分担网络流量,减轻压力,
  5. 集群抗攻击
  6. 节约成本

什么是DNS

我们先讲一下域名系统DNS(Domain Name System)吧。

他是一个分布式数据库,功能是联系域名和ip地址。域名与ip的对应关系,被称为记录(record),可分为各种类型

  • A: Address,域名指向的IP地址,一个域名可以有多个A记录。
  • NS:Name Server,保存下一级域名信息的服务器地址
  • MX:Mail eXchange,接受电子邮件的服务器地址
  • CNAME:Canonical Name,返回另一个域名,令当前查询域名挑去该域名,多个域名->服务器的映射。
  • PTR: Pointer Record,只用于ip地址查询域名

DNS由下面三个部分组成

  • 名称解析器(resolver)
  • 域名空间(domain name space)
  • 名称服务器(name server)

假如你要访问baidu.com,需要先通过dns系统查出他的ip地址如220.181.57.216,才能访问。

DNS查询的过程

那么问题来了,dns是怎么通过域名来查出ip的呢?我们以浏览器输入www.example.com为例,

  1. 检查浏览器缓存
  2. 检查操作系统缓存,常见的如hosts文件
  3. 检查路由器缓存
  4. 如果前几步都没没找到,会向ISP(网络服务提供商)的LDNS服务器查询
  5. 如果LDNS服务器没找到,会向跟域名服务器(Root Server)请求解析,分为以下几步:
    1. 跟服务器返回顶级域名(TLD)服务器如.com,.cn,.org等的地址,全球只有13台,该例子中会返回.com的地址
    2. 接着向TLD发送请求,然后会返回次级域名(SLD)服务器的地址,本例子会返回.example的地址
    3. 接着向SLD域名服务器通过域名查询目标IP,本例子会返回www.example.com的地址
    4. Local DNS Server会缓存结果,并返回给用户,缓存在系统中。

DNS安全问题

  1. DNS反射/放大攻击

    向大量开放DNS服务器发送大范围域名查询的DNS请求,并将该DNS请求的源IP地址伪造成想要攻击的目标IP地址。由于请求数据比相应数据小得多,攻击者可以利用该技术放大掌握的带宽资源和攻击流量。

  2. DDOS攻击可能造成域名解析瘫痪

  3. DNS/域名劫持
    在劫持的网络范围内拦截域名解析的请求,分析请求的域名,返回假的IP地址或者使请求失去响应。DNS劫持通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现的。

  4. DNS污染

​ DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,指的是用户访问一个地址,国内的服务器(非DNS)监控到用户访问的已经被标记地址时,服务器伪装成DNS服务器向用户发回错误的地址的行为。
dns污染与dns劫持的区别在于,dns劫持修改了dns的解析结果,dns污染是不经过dns服务器,返回错误信息。

域名的使用

实名认证

购买了域名后,首先需要进行实名认证(不能随意填),然后进入控制台:

image-20220102163733969

看到域名状态为正常就可以进行解析了。

域名解析

进行实名认证后,进行域名解析。先打开电脑上的cmd,然后ping你之前创建的仓库名,得到IP为185.199.109.153。

image-20220102164627209

解析IP,点击“解析”后有个“新手引导”,在那里输入你得到的IP记录值即可生成如下两条记录:

image-20220102170107717

主机记录含义如图:

image-20220102165923273

设置好点击启用之后,大概等个10分钟左右,再重新CMD窗口ping一下购买的域名:

image-20220102170617400

这个时候着急输入网站xyyum.icu就会出现如下图所示:

image-20220102170903940

原因是GitHub仓库没有设置CNAME或者需要修改为新域名xyyum.icu,然后再重新访问即可。

image-20220102172838832

打开GitHub自定义域名会出现如下提示:

image-20220102173055062

因为Github是虚拟主机,所以最好将记录类型修改为CNAME,记录值填成仓库域名。

image-20220102173608413

文章作者: PanXiaoKang
文章链接: http://example.com/2022/01/03/%E9%98%BF%E9%87%8C%E4%BA%91%E5%9F%9F%E5%90%8D%E4%B8%8EGithub-Pages%E7%BB%91%E5%AE%9A%E6%95%99%E7%A8%8B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 向阳榆木
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论