我们设置我们的 IIS 站点以适应蓝/绿部署。我们注意到重新启动后错误的站点启动了。
设置:
app.blue
app.green
app.entry
在app.entry
站点上,我们有一个重写规则,将流量转发到app.blue
或app.green
取决于哪个是活动站点。这一切都按预期工作并且已经有相当长的一段时间了。
最近,由于 Windows 更新,服务器在非生产时间重新启动。重新启动后,我们注意到启动了错误的 IIS 站点。因此,例如 app.blue 是活动站点,并且重写规则指向app.blue
该app.entry
规则。重启后,app.green
启动,但显然进入规则指向蓝色。
我们正在使用IIS Admin API来管理站点交换和更新重写规则。似乎很奇怪的是,开始的站点被设置为以前的蓝/绿站点。在上面的示例中,app.green
是以前的站点,因此在重新启动后它会重新启动并app.blue
停止。
我能想到的解决此问题的唯一选择是在重新启动后运行任务以检查重写规则并启动/停止正确的站点。