【问题标题】:How to deploy Node.js app without causing downtime如何在不导致停机的情况下部署 Node.js 应用程序
【发布时间】:2016-07-23 23:22:33
【问题描述】:

我的 Node.JS 应用程序通过 forever daemon 在生产服务器上运行:

forever start -w --watchDirectory=/path/to/app \
--watchIgnore=/path/to/app/node_modules/** /path/to/app/server.js

当我更改/path/to/app/ 目录中的文件内容时,该过程由forever 重新启动。虽然重新启动大约需要 2-3 秒,但该应用程序不可用,因此每次我部署新更改时都会发生停机。假设我对服务器具有完全访问权限,如何防止停机?

【问题讨论】:

    标签: node.js deployment forever


    【解决方案1】:

    您可以使用 HTTP 负载平衡器手动执行此操作,因此您将创建两个或多个只能由负载平衡器访问的后端(负载平衡器只能通过公共地址访问)。下一步是只更新一个服务器,而负载均衡器控制到一个后端(可用的)的流量。更新成功后,您可以打开更新的,并将负载均衡器重定向到正确的后端(更新的),重复该过程,两者都应该在不停机的情况下更新。

    【讨论】:

    • 谢谢。能否提供实现示例?
    • 谢谢。 HAProxy 似乎是一个完美的选择。我已经按照教程找到了一个指向这个相关教程的链接,我发现它更合适:digitalocean.com/community/tutorials/… 据我了解,HAProxy 甚至会自动检测不可用的后端并将流量重定向到可用的后端,所以我只需要要做的是确保后端不会并行更新,您认为这是正确的吗?
    • 当然,很好。是基本思想,随着时间的推移你会发现更优雅的方式。
    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 2021-04-15
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多