如果您查看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
域之间存在差异的技术原因是什么?
答案 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”),则流量。