我在 Windows Azure 上托管服务并使用外部 DNS (Gandi) 来管理区域文件。我想要将所有传入的 Azure 流量重定向到另一个网页,同时我正在更新服务(就像我们很快就会回来一样)。
我知道我可以通过更新区域文件来做到这一点,但是传播需要时间,然后才能恢复正常。所以 1 小时的更新最终需要 6-8 小时。
情况不妙。有没有其他方法可以立即重定向流量而不是等待 DNS 传播?在代码中添加重定向并不是一个真正的选择,因为 Azure 服务包需要很长时间才能上传。
谢谢
ASP.NET 中有一个功能可以快速停止提供内容。如果您将一个名为的文件放在app_offline.htm
站点的根目录中,它将提供该文件而不是常规内容。这篇博文中有详细信息。
在 Azure 中使用它可能很困难。我建议使用 VIP 交换,但我看到你不想这样做。您可以远程访问每个虚拟机并手动添加文件,但这可能会很痛苦。可以编写脚本,但我不知道这样做的简单方法。
不确定您在这里的全部要求是什么,但是 VIP 交换可以为您解决问题吗?您可以将备用的 'well be back' 站点部署到暂存槽,当您希望更新服务时,您将使用 VIP 交换来进行生产,同时更新您的服务,该服务现在正在使用最新版本进行暂存。
准备就绪后,您可以换回 VIP 并且新站点现在正在生产中?
编辑添加:
我同意你关于想要离开暂存槽进行回滚的观点,这是完全有道理的。
另一种选择可能是使用流量管理器-
将您的主要应用程序放在一个云服务中,将您的临时登录页面放在另一个云服务中。使用两种服务配置流量管理器故障转移策略(首先是主要服务,其次是备用服务)。
当您想进入“维护模式”时,禁用到主要服务的流量,所有流量都将被路由到“维护模式”,尽管在传播它时有一些滞后,以分钟而不是小时为单位测量时我玩了一点刚才有点 - 有一个 DNS 生存时间设置可供您使用,默认为 5 分钟。
当您准备好重新上线时,重新启用主站点(并且您可以选择在一切正常时删除“维护模式”部署