欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

用DNSPod和Squid打造自己的CDN(二)

程序员文章站 2022-06-04 14:02:34
第 3 章 设置域名的dns重头戏开始前,我们先来热身。智能dns可以说是cdn的基础。相信平时大家做网站都会有下面的情况:首页上放两个链接,电信用户请访问主力站点a,网通...
第 3 章 设置域名的dns

重头戏开始前,我们先来热身。
智能dns可以说是cdn的基础。相信平时大家做网站都会有下面的情况:首页上放两个链接,电信用户请访问主力站点a,网通用户请访问镜像站点b。然后做两个域名,www.naizhao.com指向a,cnc.naizhao.com指向b。用户看了半天觉得头晕,随便点一个进去,发现访问速度真可以的,估计整个网页打开,中国都已经步入共产主义社会了。
有了智能dns后,上面的问题迎刃而解。用户只需要输入www.naizhao.com,系统就会自动判断用户是电信线路还是网通线路上网,然后自动返回电信或者网通的服务器ip。整个过程对于用户来说是不可见的,用户只会觉得刷的一下网页就打开了,那叫一个爽。
废话不多说,let's do it!

1.在dnspod上面添加域名
打开www.dnspod.com,在右上角的导航菜单选择注册,根据提示输入信息完成注册。注册成功后返回首页登录。
登录后,看到有个添加新域名的框,输入naizhao(别输www。另外本文的例子就是naizhao.com),然后右边选择.com,完成后点击增加。

添加后,系统会自动跳到新添加的域名管理页面。可以看到里面什么东西都没有。不急,我们慢慢来。
在页面下方可以看到几个输入框和下拉列表,用于新增解析记录。我们先试着添加一条电信的记录看看。按照下面的格式输入:
主机记录:www
记录类型:a
线路类型:电信
记录值:1.1.1.1
优先级:(留空)
ttl:3600(默认)
完成后,点击增加。


有几个地方给大家说明一下:
主机记录:也就是域名前面的东西,比如www,那么记录生效后就是www.naizhao.com。如果要实现naizhao.com(前面没有www),那么添加的时候留空就好,系统会自动给加上一个@,代表域名本身。
记录类型:有a、cname、mx三种。最常用的就是a,记录值是一个ip地址。另外是mx,也就是邮件记录,做邮件服务器的时候用到,这里不深入讨论了。
线路类型:比较重要。如果选择了电信,那么代表这条记录*只能*给电信用户解析出来,网通用户是解析不出这条记录的。如果你一个域名只添加了一个电信的记录,那么网通用户将会无法访问。同样道理,网通的线路类型也一样。另外有一点要说明:非网通、非教育网的用户将会被解析到电信记录去。也就是说,国外用户、铁通、联通等用户都会被解析到电信服务器。
还有一个通用,通用的意思是,不管你是电信还是网通还是其他用户,都可以解析出这条记录。在存在电信和网通两条记录的情况下,不建议添加通用记录。
记录值:根据记录类型,分别输入一个ip或者一个域名(不是url转发的域名)
优先级:用在mx记录中,数字越小,优先级越高。作用是:从优先级最大的服务器开始,如果邮件服务器出问题,邮件无法寄达,将会转发到优先级小一级的服务器上去。如果你没有很多台邮件服务器,这个就不用管了。
ttl:同样是比较重要的东西。数字是按照秒来算,3600也就是一个小时。意思是,用户请求一个域名的解析,在得到ip后,3600秒之内不会向dns服务器重新请求解析,3600秒之内访问此域名,都将直接从自己机器的缓存里面获取ip。超出3600秒后,将会重新向dns服务器请求获取ip。

ok,我们继续,添加一条网通的记录,让添加完成后的记录像下面的样子


到此,我们就添加成功了。等个半分钟,我们来测试一下是否已经生效。
a.windows用户
我们使用nslookup命令,先在开始菜单-运行-cmd,回车打开命令行。
然后输入nslookup www.naizhao.com ns1.dnspod.net,稍等一下,看看服务器返回的结果:
name:    www.naizhao.com

address:  1.1.1.1
如果你是网通用户,那么会得到下面的结果
name:    www.naizhao.com

address:  2.2.2.2
只要你按照说明的步骤来说,基本不会有问题出现。如果无法正常返回结果,请稍等两分钟。如果等了两分钟还不行,那么就检查下你添加的记录是否正确了。
b.linux/unix/mac用户
直接使用系统自带的dig命令。dig命令比nslookup更为强大。
输入dig @ns1.dnspod.net www.naizhao.com,会返回一大堆结果。我们只需要找到下面的文字就证明一切正常
;; answer section:
www.naizhao.com.        3600    in      a       1.1.1.1
网通用户会看到
;; answer section:
www.naizhao.com.        3600    in      a       2.2.2.2

至此,dnspod方面的工作已经完成,下一步就是把域名的dns服务器改为dnspod的。
2.把域名的dns转到dnspod
域名迁移以前,我先提示一下风险:

根据域名的dns协议规定,所有域名的ns记录(也就是指向dns服务器的记录)的ttl时间必须为172800秒,也就是48小时。根据我们前面所学到有关ttl的知识,也就是说,一个域名如果被请求过一次以后,只要缓存不被清空,那么ns记录就会存在48小时。48小时内,任何有关此域名的记录的请求都发送到这个dns服务器。换个角度来理解,如果a用户访问过你的网站,然后你在半个小时后修改你域名的dns服务器,那么在剩余的47个半小时内,a用户对你这个域名的所有请求都会发送到你*旧的*dns服务器,而不是新的服务器。b用户在你修改dns成功后访问你的网站,那么b用户将会得到*新的*dns服务器地址,所有请求都发往*新的*dns服务器,而不是*旧的*。明白这点后,那么你就会知道,为什么修改域名的dns后需要48个小时来生效。你也会明白,为什么记录会一下变成新的,一下变成旧的:这是因为,你地方的dns服务器一般是2-3台,但他们每台之间的记录并不同步。
另外,一些很小气的域名注册商,在你修改dns服务器后,会停止对你域名的解析。那么你将会冒着用户无法访问你站点的风险。对这样的用户,我一般建议在迁移域名的前一天,在你域名注册商的dns管理后台,先把你所有域名记录的ttl,从默认的3600改为36000(10个小时)以上,并且选择在晚上10点以后修改dns,因为dns记录会在用户关机、关闭adsl modem后失效(当然,很有可能还会从地方电信的dns得到旧记录)。设置10个小时以上是让用户在就算旧dns服务器停止服务后,也能从本地的缓存里面得到记录。

具体如何修改dns,我就不具体说了,每个域名注册商都不一样。有几点要注意的:
1.填写dns的时候,记得要把旧的全部去掉,不要以为新旧留着会稳定,这样只会让你的用户得到错误的记录。
2.尽量多填dns服务器,这样能让你的域名更加稳定。目前dnspod有6台dns服务器,一般的域名注册商允许你填写4个(新网),万网在客户面板里面只能填写2个,但在域名管理面板(diy.hichina.com)可以把6个都填写进去。


目前dnspod的6台dns服务器分别为(注意了,是.net不是.com):
ns1.dnspod.net
ns2.dnspod.net
ns3.dnspod.net
ns4.dnspod.net
ns5.dnspod.net
ns6.dnspod.net


折腾了老半天,大家也够累了。这个时候,iso应该下载好了吧?辛苦一点,先把盘给刻好了。在下一章奶罩将会带你进入神秘的linux殿堂。