我为web应用webapp-a配置了自定义域名www.abc.com,我想将其转移到webapp-b,无需停机。
如果我尝试将域添加到webapp-b,我正在
主机名www.abc.com已分配到另一个Azure网站:webapp-a
有没有办法让webapp-a继续提供请求,直到DNS缓存过期?
编辑:域具有基于IP的SSL绑定,DNS正在缓存虚拟IP。
答案 0 :(得分:2)
我遇到了同样的问题,并且能够以棘手的方式解决它。
我创建了新的应用服务计划(以前称为虚拟主机计划),并为其分配了“新的”Web应用程序(您可以通过新的门户网站进行,或者您可以在创建Web应用程序期间创建服务计划)。
然后,我能够在不同的主机方案中为Web Apps分配相同的主机名。
考虑到这一点,我认为这是合乎逻辑的:很可能服务计划映射到物理IIS计算机,并且由于显而易见的原因,您不能在同一个IIS中拥有两个具有相同主机名的站点。
从一个DNS迁移到另一个DNS后,您可以删除未使用的服务计划(因为您基本上单独支付每个服务计划)。
答案 1 :(得分:1)
根据Azure应用服务团队2017年6月的博客文章,Azure现在似乎支持将相同的自定义域添加到多个Web应用程序:
在某些情况下,客户希望将相同的主机名添加到同一订阅中的多个Web应用程序,并且具有地理分布式网站就是一个示例。我们的自定义主机名功能允许您绕过已经过验证的主机名的验证。您只需在首次添加主机名时验证域所有权。对于同一订阅中的所有其他应用,您可以添加相同的主机名,而无需创建任何DNS记录。
您可以在https://blogs.msdn.microsoft.com/appserviceteam/2017/06/21/custom-hostnames-with-app-service/阅读整篇博文。上面的引用来自将相同的自定义主机名添加到多个网络应用部分。
在您希望将自定义域名从一个Web应用程序转移到另一个Web应用程序的情况下,这应该会有所帮助。您只需向两个Web应用程序添加相同的自定义域名,添加任何所需的SSL绑定,然后将DNS更改为指向新的Web应用程序。随着DNS更改的传播,流量应逐渐转移到新的Web应用程序,而不会出现任何停机。
我自己在北欧地区测试了这个并且没有问题。这两个网络应用都在不同的应用服务计划中。我没有在同一个应用服务计划中使用这两个Web应用测试此方案。请记住,如果您在DNS中使用IP地址/ A记录,则您需要两个网络应用程序都具有不同的DNS地址,以便能够区分您的网络应用程序。
答案 2 :(得分:0)
尝试将域分配给Azure流量管理器,并让流量管理器将请求转发给第二个站点。 Azure Traffic Manager和Web Apps是两个不同的系统,因此您可以将相同的域名分配给Web应用程序和流量管理器。
DNS缓存过期后,从旧的Azure网络应用程序中删除该域并将其添加到新的,然后最终删除流量管理器帐户。
选项2
将TTL设置为非常小的值,比如5秒(我相信你的主机名提供者应该让你设置它),等待新的TTL传播通过所有的缓存。然后将自定义域从一个应用程序切换到另一个应用程序,并将TTL设置回原始值。
这将导致任何客户只需几秒钟的停机时间,但如果您在低流量时间执行此操作,效果应该不会太差。