我们想更换托管服务提供商。为此,需要对与我们的域关联的 IP 地址进行 DNS 更新。
内容已经过测试并在新服务器上提供。已进行 DNS 更新,但用户无法看到新站点,直到 DNS 传播(可能是几天)。
是否可以在旧服务器上执行某些操作,以便在收到请求时可以转发/重定向到新服务器,从而消除“DNS 停机时间”?
我们在带有 ISAPI_rewrite 3.0 的 IIS6 上运行 ASP.net 3.5。
我们想更换托管服务提供商。为此,需要对与我们的域关联的 IP 地址进行 DNS 更新。
内容已经过测试并在新服务器上提供。已进行 DNS 更新,但用户无法看到新站点,直到 DNS 传播(可能是几天)。
是否可以在旧服务器上执行某些操作,以便在收到请求时可以转发/重定向到新服务器,从而消除“DNS 停机时间”?
我们在带有 ISAPI_rewrite 3.0 的 IIS6 上运行 ASP.net 3.5。
我们的解决方案(根据 Darryl 的建议 - 但这信息太多,无法评论)
我们使用ISAPI_Rewrite 3.0,它是一种出色且低成本的 url 管理工具,因此该解决方案是针对该产品量身定制的,但从概念上讲应该适用于其他环境。
DNS(用于 mydomain.com)
A newsub newIP #(new record)
A existing newIP #(updated IP)
新主机上站点的 IIS 配置:
Add newsub as a hostheader on site
.htaccess 用于新主机上的站点
#add as first rule. trap requests for new subdomain and redirect to existing
#ASSUMES that redirect to existing is now safe because DNS for existing
#was updated when newsub DNS was queried.
#otherwise this is going to be an endless loop of
#redirects between the old and new server
RewriteCond %{HTTP_HOST} ^newsub\.
RewriteRule ^(.*)$ http://existing.mydomain.com/$1 [R=302, L]
.htaccess 用于旧主机上的站点
#add as first rule. redirect all requests to new subdomain
RewriteCond %{HTTP_HOST} ^existing\.
RewriteRule ^(.*)$ http://newsub.mydomain.com/$1 [R=302, L]
您可以设置一个单独的子域,将旧服务器上的用户重定向到该域,并让新服务器接受来自该子域的请求。新的子域(A 记录)的传播速度应该比更改快得多。一旦 DNS 完全传播,您就可以将该子域/A 记录重定向到常规地址。