用DNSPod和Squid打造自己的CDN(二)
程序员文章站
2023-11-11 15:05: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殿堂。
重头戏开始前,我们先来热身。
智能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殿堂。
上一篇: Squid集群做CDN全网加速配置分享
下一篇: 将你的Apache速度提高十倍的经验分享
推荐阅读
-
用DNSPod和Squid打造自己的CDN (四)
-
用DNSPod和Squid打造自己的CDN (三) 安装CentOS Linux
-
用DNSPod和Squid打造自己的CDN (五) 安装Squid的前期准备
-
用DNSPod和Squid打造自己的CDN(二)
-
用DNSPod和Squid打造自己的CDN (七) 配置Squid
-
用DNSPod和Squid打造自己的CDN全程分享
-
(转)打造自己的vim界面--用winmanager合并显示NERDTree和TagList
-
(转)打造自己的vim界面--用winmanager合并显示NERDTree和TagList
-
用DNSPod和Squid打造自己的CDN (六) 编译并安装Squid
-
二级缓存和三级缓存 自己用的PHP缓存类