热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

智能DNS可以说是CDN的基础。相信平时大家做网站都会有下面的情况:首页上放两个链接,电信用户请访问主力站点A,网通用户请访问镜像站点B
第 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殿堂。
推荐阅读
  • 《我的世界》Java版与Windows 10版(基岩版)有何不同?
    《我的世界》Java版与Windows 10版(基岩版)有何不同? ... [详细]
  • 在网络故障排查中,tcpdump 是一款强大的工具,尤其在 Linux 环境下。尽管开发环境中问题较少,但在测试或生产环境中,往往会遇到各种难以预料的异常情况。通过在问题发生的环境中启用 tcpdump 进行抓包,并重现问题,可以获取到宝贵的原始数据,为问题的诊断提供关键线索。本文将详细介绍如何使用 tcpdump 进行实战操作,帮助读者掌握这一技能。 ... [详细]
  • 在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统
    本文详细介绍了在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统的步骤。首先,通过“文件”菜单选择“新建虚拟机”并进入自定义设置。接着,在硬盘兼容性选项中选择默认设置。为了更好地进行Linux操作系统的安装练习,建议选择稍后安装操作系统,并在虚拟机安装完成后,根据实际需求删除不必要的硬件组件。此外,本文还提供了详细的配置参数和注意事项,帮助用户顺利完成整个部署过程。 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • 理解和应用HTTP请求中的转发与重定向机制
    在HTTP请求处理过程中,客户端发送请求(通常简称为req),服务器进行相应处理后返回响应(通常简称为res)。理解和应用客户端的转发与重定向机制是前端开发的重要内容。这两种机制在Web开发中具有关键作用,能够有效管理和优化用户请求的处理流程。转发机制允许服务器内部将请求传递给另一个资源,而重定向则指示客户端向新的URL发起新的请求,从而实现页面跳转或资源更新。掌握这些技术有助于提升应用的性能和用户体验。 ... [详细]
  • 本文详细介绍了在Windows XP系统中安装和配置Unix打印服务的方法,以支持远程行式打印机(LPR)功能。对于同时使用Windows 2000 Server打印服务器和Unix打印服务器的网络环境,该指南提供了实用的步骤和配置建议,确保不同平台之间的兼容性和高效打印。 ... [详细]
  • 在 CentOS 6.6 系统中搭建 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的运行环境配置指南
    本文提供了在 CentOS 6.6 系统上配置 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的详细步骤。首先,确保本机环境为 CentOS 6.6,并使用阿里云的 YUM 源来安装必要的软件包,包括 gcc、gcc-c++、bison、pkgconfig 和 glib2-devel。这些软件包是构建和运行 MONO 环境的基础,确保系统能够顺利支持 ASP.NET 和 MVC 应用的部署和运行。 ... [详细]
  • 本文全面解析了 gRPC 的基础知识与高级应用,从 helloworld.proto 文件入手,详细阐述了如何定义服务接口。例如,`Greeter` 服务中的 `SayHello` 方法,该方法在客户端和服务器端的消息交互中起到了关键作用。通过实例代码,读者可以深入了解 gRPC 的工作原理及其在实际项目中的应用。 ... [详细]
  • 深入理解Linux网络编程:UDP协议实战解析
    深入理解Linux网络编程:UDP协议实战解析 ... [详细]
  • 在MySQL中更新密码时,首先需要在DOS窗口中切换到mysql安装目录,并使用`--skip-grant-tables`参数启动MySQL服务,以跳过权限表验证。接着,在MySQL命令行中执行相应的SQL语句来设置新密码。完成密码更新后,重启MySQL服务以使更改生效。此外,对于电脑快捷方式的修改,可以通过右键点击快捷方式,选择“属性”,在弹出的窗口中进行路径或目标的修改,最后点击“应用”和“确定”保存更改。 ... [详细]
  • 如何在Mac上构建高效的本地服务器环境
    在Mac上构建高效的本地服务器环境,首先需要了解基本步骤:1. 配置目录基础;2. 启动Apache服务;3. 添加自定义文档至本地服务器;4. 查看自定义效果。此外,还可以通过手机或其他电脑访问本机服务器,以确保跨设备的兼容性和调试效果。Mac系统自带的Apache服务为本地开发提供了便捷的工具,本文将详细介绍每个步骤的具体操作方法。 ... [详细]
  • Windows 10系统对Intel服务器的影响:来自微软官网的下载选项分析 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
  • 【Linux进阶指南】第一阶段第三课:体验与部署Ubuntu系统
    在正式踏上Linux学习之旅之前,本课程将引导你深入体验和部署Ubuntu系统。通过详细的操作步骤和实践演练,你将掌握Ubuntu的基本安装、配置及常用命令,为后续的进阶学习打下坚实的基础。此外,课程还将介绍如何解决常见问题和优化系统性能,帮助你更加高效地使用Ubuntu。 ... [详细]
  • 在64位Linux系统上编译GCC时,可能会遇到一个错误,即在构建共享库过程中,`.libs/alloc.o` 文件中的重定位 `R_X86_64_32` 无法应用于 `.rodata.str1.8` 段。这一问题通常与目标文件的地址空间限制有关,需要通过调整编译选项或修改源代码来解决。具体来说,可以尝试使用 `-fPIC` 选项以生成位置无关代码,或者检查相关对象文件的链接方式。 ... [详细]
author-avatar
刁琼婉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有