【问题标题】:Deploy a WebApp and always keep it running部署 WebApp 并始终保持运行
【发布时间】:2021-04-08 20:17:52
【问题描述】:

我有一个分布在多个服务器上的 Web 应用程序,传入流量由 HAProxy 处理以平衡负载。当我们进行分发时,我们在晚上进行,因为用户少得多,因此我们的服务较少。为了进行分发,我们使用以下策略:

  • 我们关闭了一半的服务器
  • 我们部署在关闭的服务器上
  • 我们重新激活已关闭的服务器
  • 我们在其他服务器上执行相同的过程

问题在于,无论如何我关闭了服务器,我们关闭了与用户的连接。有没有更好的策略来做到这一点?我怎样才能改进这一点并避免造成伤害,甚至在白天也能进行分发? 我希望我很清楚。谢谢

【问题讨论】:

    标签: deployment load-balancing web-deployment haproxy


    【解决方案1】:

    我强烈建议对服务器使用健康检查。 Using HAProxy as an API Gateway, Part 3 [Health Checks]

    您应该有一个 URL ("/health") 可用于后端服务器的健康检查,并将 option redispatch 添加到配置中。

    现在,当您想维护后端服务器时,只需“删除”“/health” URL,haproxy 会自动将用户路由到其他可用服务器。

    【讨论】:

    • 感谢您的回复,但是您知道如何在关闭 Web 服务器 (IIS) 之前耗尽活动连接吗?
    • 这将自动完成。你读过文档链接吗?
    • 嗨,如果我理解正确,我应该使用重新调度选项并为被动健康检查设置一个 url,当我部署时,我应该删除/停止这个健康检查吗?但是,活动连接是否已经被处理掉了?这仅适用于后端吗?前端呢?
    • 是的,但它是主动健康检查而不是被动健康检查!它适用于特定后端的服务器。因此,当您有 N 个服务器并且只有一个服务器关闭时,其他服务器会像以前一样工作。
    猜你喜欢
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 2015-02-08
    相关资源
    最近更新 更多