![网站从一台服务器迁移到另一台服务器时出现 DNS 问题](https://linux22.com/image/571038/%E7%BD%91%E7%AB%99%E4%BB%8E%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB%E5%88%B0%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E5%87%BA%E7%8E%B0%20DNS%20%E9%97%AE%E9%A2%98.png)
我需要将我的网站从一台 Windows 2008 + IIS 7 服务器迁移到另一台。我该如何解决 DNS 缓存问题(一段时间内 DNS 会将我的主机解析为旧服务器)。我的旧服务器可以运行几天。我可以让 IIS 以某种方式将流量重定向到新服务器吗?
答案1
如果您也要移动数据库,则需要停机,除非您可以设置数据库复制。
1 ) 将 DNS 记录上的 TTL 降低到例如 60 秒。2
) 将所有网站内容复制到新服务器,将其设置为在多个主机上监听,其中一个是全新的。例如 new.domain.tld。同时将服务器设置为以 503 服务暂时不可用约一小时左右进行响应,以确保它保持此状态,直到所有 DNS 都完全更新为止。*
3 ) 设置从旧服务器到 new.domain.tld 的重定向。确保这是 302(临时)而不是 301(永久)重定向。
* 这样做的原因主要是搜索引擎。它们不喜欢重复的内容(在两个网站上看到相同的内容),这可能会给你带来惩罚。你仍然可以向用户提供网站,因此使用浏览器的人不会注意到差异。但是,搜索引擎(和监控系统)会发现资源现在不可用,因此没有理由对其进行缓存。
答案2
如果网站是镜像的(它们在两个服务器上完全相同),并且它们使用相同的数据库/数据源,那么为什么不在等待 TTL 过期时保持原样?:-)
如果绝对需要每次只让一台服务器托管网站,您可以:
使用应用程序请求路由将所有请求路由到新服务器,如下所述: http://www.iis.net/download/applicationrequestrouting,只需在旧服务器上设置一个服务器场,并将新服务器作为唯一的服务器添加到服务器场中
创建新的、唯一的 DNS 记录,并将其指向新服务器。在新网站上设置辅助绑定,以便它同时为“www.website.com”和新 DNS 条目“new.website.com”提供请求。然后在旧 Web 服务器上设置一个简单的重定向到“new.website.com”,这样即使人们因为缓存的 DNS 记录而被发送到旧服务器,他们也始终会被转移到新服务器。
希望这可以帮助 :)