本文转载自微信公众号《写代码的海怪》,作者海怪。转载本文请联系写代码的海怪公众号。前言中,我上次写了一篇关于给GihubPages添加自定义域名的文章。之后觉得写的稍微踏实一点,对人来说也只是鱼肉罢了。为了让大家可以在其他场景下处理自定义域名,比如腾讯云网页部署、Heroku自定义域名、自定义CDN域名等,今天写一篇比较笼统的文章,总结一下自定义域名的那些事。原因是如果我们要访问一台计算机上的资源,一般需要通过IP地址来访问。比如电脑上运行着一个ReactApp,你可以在电脑上http://127.0.0.1:3000访问本机的页面。如果电脑的IP地址是192.168.1.10,手机和电脑连接的是同一个Wifi,那么在手机上输入http://192.168.1.10:3000就可以访问这个网页。当我们访问服务器上的文件(html、js、css等)时,实际上是在访问一台远程计算机,同样需要通过IP地址来访问。这就导致了一个问题:没有人能记住这一串数字。因为我记不住,所以我给它起个名字。这就是域名的由来,就是像下面这样的一个Map。Name->IPaddressDNSserver但是我们给这个IP取了一个新的名字之后怎么告诉别人呢?所以,我们必须有一个大日记来记录上面的Map关系:taobao.com->xxxbaidu.com->yyy...DNS(DomainNameSystem)服务器就是帮我们记录和解析上面的关系。这就是为什么面试题“输入URL后会发生什么”中有一个步骤是去DNS服务器解析IP地址,这样我们才能访问到正确的服务器资源。域名解析当然,DNS解析服务不仅有域名->IP的功能,还有解析邮件服务器、CNAME配置等,下面我直接结合腾讯云的DNSPod的解析规则来说明。A记录首先,上面提到的域名->IP地址的Map记录称为A记录,即ActiveRecord。是最常见的域名解析。比如我们买一台服务器,一般都有一个公网的IP地址。我们只需要添加一条A记录,将域名指向我们服务器的IP地址即可。另一个常见的例子是GithubPages自定义域名配置之一:添加4条A记录,指向如下IP地址:185.199.108.153185.199.109.153185.199.110.153185.199.111.153CNAMECNAME是域名的昵称,大家可以理解IP的昵称(域名)的昵称(CNAME)就是CNAME。其实我们平时接触到的并不是A记录,而是CNAME记录,在一些部署平台上很常见。在部署你的个人网页时,这些部署网站会自动给你一个很低的域名,比如GithubPages的haixiangyan.github.io,或者Heroku的haixiangyan.heroku.app,或者腾讯云的“乱码”域名thedemo-9gf4vat5207cf224-1253834571.ap-shanghai.app.tcloudbase.com.只要我们有自己的域名,在DNS中添加一条CNAME记录指向上述第三方服务商自动创建的域名,就可以直接通过自己的域名访问第三方服务平台上的资源了姓名。另一个常见的场景是CDN服务器。如果在腾讯云上购买CDN服务器,还会提供一个“少乱码”的域名。比如我的个人网站是www.yanhaixiang.cn.cdn.dnsv1.com。同样,在DNS中添加一条CNAME记录,指向CDN提供的域名,就可以访问CDN上的资源。TXT是TXT记录。我目前使用的场景是域名验证:当腾讯云要验证域名是否合法/激活时,需要在DNSPod中添加一条TXT记录,腾讯云会为你提供该记录值。添加后,腾讯云会检查这条TXT记录的值是否正确,从而验证域名是否合法。AAAA上的A记录都是IPv4IP地址,也是最常见的IP地址。随着计算机的发展,有些已经使用了IPv6,所以用AAAA记录来解析对应的IPv6地址,但目前很少使用。NSNS是名称服务器。还记得上面提到的DNS吗?NS可以理解为DNS服务器。一般域名服务商都会有自己的NS,默认会使用自己的NS来解析域名。如果不想使用当前域名服务商的NS来解析域名,也可以换成其他的。除非有特殊需要,NS记录的使用场景很少。MX设置邮箱记录。我用的不多,所以不评论。其他我们一般接触到的记录就是上面的记录,腾讯云也提供了其他的记录类型:注意上面的“显式URL”和“隐式URL”在其他域名服务器上可能没有,比如namesilo。com这个便宜货。说实话,国内的云服务比国外的好多了,很多功能都很实用。强烈推荐大家使用国产云。子级域名只了解DNS解析记录是不够的,还要了解域名的分类。比如www.baidu.com,顶级是com,二级是baidu,三级是www。我们买域名的时候,买的是顶级+二级域名,直接锁定了顶级域名和二级域名。添加域名解析记录时,可以在主机记录字段指定三级域名:如果我有域名yanhaixiang.com,那么www.yanhaixiang.com和yanhaixiang.com必须指定,默认不是yanhaixiang.com。图中从上到下配置的域名全文为:主机记录域名全文示例www.yanhaixiang.com@yanhaixiang.com*abc.yanhaixiang.com,fuck.yanhaixiang.commailmail.yanhaixiang.com下面两个这只是腾讯云给你的例子,就不给你举例了。分级别的好处就是不用上线网站就可以买对应的域名,太贵了~比如我之前买了域名yanhaixiang.cn,想用这个域名的时候点国内腾讯云我的个人网站,Github提供的GithubPages,添加两条记录后:可以访问国内腾讯云个人网站https://yanhaixiang.cn,访问GithubPages个人网站https://github.yanhaixiang.cn,非常悠哉。国内域名购买:腾讯云、阿里云、华为云等都不错。国外:NameSilo、GoDaddy、AWS等。我个人比较推荐在国内购买,因为国内的云服务商功能非常齐全,服务关联度高。可以说,有了国内域名,走遍天下都不怕。没有国内域名,万事难。除了.com、.cn等常见顶级域名外,还有.xyz、.top等廉价顶级域名。有些顶级域名比较敏感,比如.law,只能找专业机构注册:如果你真的想要.com这样的顶级域名,可以尝试购买二级域名——,比如我买了一个easy-refer.com域名,每年19刀。二级域名允许有-的原因是为了解决名称混淆的问题。例如,您的公司名为WhoRepresents,然后您注册了一个whorepresents.com网站。由于域名不区分大小写,很容易被误解为WhorePresents,变成送给妓女的礼物。除此之外,专家交流的expertschange.com被理解为ExpertSexChange,当场死亡。加上-连字符可以更好的“分词”,这样网站的内容才不会被别人误解。二级域名除了英文,还可以选择中文,比如www.张伟是个jerk.com在?:别开玩笑,这个网站也能正常访问,里面的内容都是相关的到《爱情公寓》。最早的帖子是2011年的,这个网站大概就是那个时候上线的。10年过去了才知道~由于域名的“唯一性”,在那些年里,注册一个好域名比建一个域名还贵。好看的网站更有价值,比如apple.com、baidu.com等,这也导致了一些投机者的出现:一出手就买一堆域名,然后坐等公司前来购买域名。备案只有国内的服务商才需要做域名备案,这也算是中国特色吧。最近备案了3个域名,每个域名备案大概需要1个月的时间。备案可不是填几张表那么简单,需要注意的地方还是很多的。前提条件根据国内相关法律规定,域名备案前必须有租期3个月以上的服务器可用。但是国内一些云厂商一般会要求你购买他们自己的服务器才能绑定销售。当然,只要有上述服务器之一,期间可以注册多个域名。还有一点就是域名不能同时备案,一次只能备案一个。所以如果备案的域名有多个,就选最紧急的一个备案吧~备案的时候给网站取名非常困难,经常会被打回来。如果是做个人网站,建议使用名称“个人项目展示”,“个人网站”是黑名单中的名称。最好不要盲目填写紧急联系电话。有时备案方的人会随机查看电话号码。如果紧急联系电话无法接通或无法接听,则必须更换它。替换本质上是另一个备案文件。过程,所以最好一开始就把这个弄好,别问我怎么知道的。现在归档需要签“合同”之类的文件,需要用到红色印台,印台就有(我当时差点在网上买了一个)。不过就算备案有问题,工作人员也会在差不多一天的时间内打电话给你改正,所以不要慌~总结最后简单总结一下:域名服务器IP的别名,方便大家记住服务器IP地址生成的域名和IP地址的关系需要通过DNS服务器来解析。解析规则中的一条记录和CNAME记录最多只能使用一个域名。您可以指定一个三级域名来实现域名主机。购买多个网站的域名,最好购买国内的域名,综合性更强。
