背景信息:我在两个节点上运行基于 Play Framework 的应用程序,这两个节点位于单个基于 nginx 的负载均衡器后面。软件更新在 Jenkins 之上自动进行。应用程序在 Supervisord 进程管理器的顶部运行。
问题:将软件更新到节点以使服务在软件更新期间启动并运行的正确方法是什么?
解决方案 1:从节点禁用端口 80,该端口将更新软件并在节点准备好服务时打开它。负载均衡器应该自动将请求转发到另一个节点。
解决方案 2:在软件更新期间从负载均衡器中禁用节点。我个人不喜欢这个解决方案。对负载均衡器配置进行更改听起来风险太大。此外,您必须重新启动 nginx 才能更改使用。
您会提出其他方法吗?