Azure Web 应用程序随机重启 - 任何人都可以扩展此建议吗?

Posted

技术标签:

【中文标题】Azure Web 应用程序随机重启 - 任何人都可以扩展此建议吗?【英文标题】:Azure web app random restart - Can anyone expand on this recommendation? 【发布时间】:2020-06-29 19:15:09 【问题描述】:

在最近对 Azure Web api 宕机的调查之后(它不喜欢冷重启,因为排队的请求会淹没服务器,即 503),我收到了以下信息:

随着站点绑定状态的改变,您的应用程序已重新启动。这 很可能由于最近的部署槽交换操作而发生。 在某些情况下,交换后生产槽中的 Web 应用程序可能 稍后重新启动,应用程序所有者不采取任何操作。这次重启 可能在交换发生后数小时/天发生。这 通常发生在 Azure 的底层存储基础架构时 应用服务发生了一些变化。当这种情况发生时,应用程序 将同时在所有虚拟机上重新启动,这可能会导致感冒 HTTP 请求的启动和高延迟。发生了这个事件 白天多次。

建议是

为了尽量减少随机冷启动,您可以设置此应用设置 WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG 在每个插槽中设置为 1 应用程序。

有人可以详细说明一下吗? 我是否认为如果我们将来在某个随机时间点进行交换(例如:暂存到生产),应用程序将重新启动?

应用设置的实际作用是什么?它将如何阻止 Azure 重新启动生产槽?

答案来自 Patrick Goode 提供的链接,他的 google-foo 比我的要好得多

“只是为了解释什么的细节 WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG 应用程序设置。经过 默认我们将站点的主机名放入站点的 applicationHost.config 文件的“绑定”部分。那么当交换 发生 applicationHost.config 中的主机名不同步 实际站点的主机名是什么。这不影响 无论如何,应用程序在运行时,但只要一些存储事件 发生,例如存储卷故障转移,该差异导致 要回收的工作进程应用程序域。如果您使用此应用设置,那么 而不是主机名,我们将站点名放入“绑定” appHost.config 文件的部分。站点名称不变 在交换期间,因此交换后不会有这样的差异 因此不应该重新启动。”

【问题讨论】:

【参考方案1】:

看起来这个设置应该防止“随机冷重启”

https://ruslany.net/2019/06/azure-app-service-deployment-slots-tips-and-tricks

【讨论】:

以上是关于Azure Web 应用程序随机重启 - 任何人都可以扩展此建议吗?的主要内容,如果未能解决你的问题,请参考以下文章

Azure 移动服务中的随机 503 错误

Azure 网站和 Azure Web 角色有啥区别

具有多个 Azure Web 应用程序的 SSO

带有 Linux 日志记录的 Azure Web 应用程序不起作用

保护访问以触发 Azure 逻辑应用(HTTP 请求触发器)

将 MVC 应用程序部署到 Azure 应用程序服务时出现 POSTS 问题