在GitHub Pages上使用www域名的建议是什么?

时间:2019-06-08 22:08:52

标签: github dns github-pages cname

如果您查看GitHub页面的文档,强烈建议使用www域作为托管在GitHub Pages上的自定义域站点。

从这里:https://help.github.com/en/articles/about-supported-custom-domains#www-subdomains

  

www子域是最常用的子域类型,其中   www代表万维网。例如,www.example.com是   www子域,因为它包含子域部分www。

     

出于以下原因,我们强烈建议您使用www子域:

     
      
  • 它使您的GitHub Pages站点受益于我们的内容交付网络。
  •   
  • 它更稳定,因为它不受GitHub服务器IP地址更改的影响。
  •   
  • 由于可以更有效地实施拒绝服务攻击防护,因此页面的加载速度将大大提高。
  •   

这是否意味着如果我不使用www域,我将不会获得CDN或DDOS攻击防护的好处?

这里的www域和非www域之间存在差异的技术原因是什么?

2 个答案:

答案 0 :(得分:2)

DNS不提供可靠的机制来转发根目录/根记录(例如example.com),但提供子域(CNAME)。实际上,这意味着尽管您可以将A记录指向与Github基础架构上的节点相对应的单个IP地址,但它们无法将针对您的顶点记录的DNS查找路由到更接近的其他IP地址请求(CDN)或使用DNS减轻(D)DoS攻击的影响。

一些DNS提供商确实提供了模拟记录(ALIAS,ANAME),它们可以模拟具有顶点域(例如dnsimple)的CNAME记录的行为,但是它们的使用范围不广,引入了额外的复杂性和延迟,并且没有为Github等提供相同级别的地理路由机会。

答案 1 :(得分:1)

区别在于您如何将站点指向DNS中GitHub的服务器。

DNS的最简单用法是使用A记录将域名以任何级别指向IP地址。所有用户都将使用相同的地址,并且只有添加A记录的“区域”的所有者才能更改该地址-在这种情况下,您需要配置自定义域的区域。

更聪明的方法是使用CNAME记录将特定域名别名[em] 到另一个区域(在本例中为GitHub管理)。然后,该区域的所有者可以根据需要更改IP地址,甚至可以根据不同用户的位置(CDN参考来自何处)为不同用户提供不同的答案。

但是,关键限制是您不能将CNANE用作区域的根。有关详细技术信息,请参见this Server Fault question

如果您拥有“ example.com”,则可以将该域的根的A记录指向一个GitHub IP地址(或几个,基本上由访问者随机选择),但将给GitHub更大的路由自由如果您将CNAME指向子域名(例如“ www.example.com”),则流量。