By oflyhigh on Skatehive
前篇文章中说到为了节省睡后支出,我准备关掉一些几乎闲置的服务器。但是服务器上除了我自己的站和程序以外,还有一些用户站点,如何将用站点平滑的迁移(零DOWN机时间),是很重要的问题,其中影响颇大的就是域名解析相关的问题。 (图源 :pixabay) 我将操作经验分情况整理如下。 修改DNS 因为我们的服务器上都自建了DNS(域名解析服务)。这样做有个好处就是开通站点以及绑定域名时,不用手工指定各种解析记录(A记录、MX记录、CNAME记录等等),极大的简化了流程以及方便了用户。 如果用户域名也是在我们这里注册和管理,这样操作起来就比较简单了。迁移会把相关的域名解析记录全部迁移到新服务器并自动修改对应记录的指向,数据迁移完成后,我们只需将域名DNS修改为新服务器的DNS即可。 DNS转向 直接修改DNS是最简单的一种情况,但是如果用户是在其它注册商注册的域名,然后域名的NS记录指向我们的服务器,这时候我们是无法直接修改用户域名的DNS的。 当然了,联系用户修改DNS是必须要做的事情,但是有时候用户会由于各种原因没能及时联系上或者没能及时修改DNS。对于一些静态站点,这样并不会造成什么问题,但是对于一些保存一些用户信息的动态站点而言,如果旧服务器上的站点发生了修改(比如新插入一条数据)然后DNS再指向新服务器上的站点,这时候数据就会变得不一致。 所以这时候处理类似情况的最好办法是DNS转向,DNS转向是我自己命名的一个名词。简单来讲假设一个域名的DNS设置为: ns1.xxx.com ns2.xxx.com 那么我们可以在ns1和ns2的DNS服务中添加对应的解析记录,比如: example.com 14400 IN A 1.1.1.1 example.com 14400 IN MX 0 example.com 那么如何让其不修改域名NS的情况下使用ns3以及ns4呢?答案是在域名的解析记录中添加新的NS记录。 example.com 14400 IN A 1.1.1.1 example.com 14400 IN MX 0 example.com example.com 14400 IN NS ns3.xxx.com example.com 14400 IN NS ns4.xxx.com 因为域名解析时,NS记录是递归判断的,所以纵然从域名数据库(注册信息)那查询到的NS