使用 nginx 禁用 worker?

使用 nginx 禁用 worker?

我们想要迁移到 nginx,并且希望拥有与现在相同的行为:

我们使用以下负载平衡设置:Apache mod_jk 和 AJP 连接到 JBoss 4.2.3 工作进程。安装了 JKStatusManager 以在线配置工作进程设置。工作进程具有粘性会话。没有用于会话故障转移的会话复制。

不幸的是,我们无法启用会话复制以实现会话故障转移,因为我们的会话状态太大(JSF)。我们无法转向客户端复制,因为会话状态太大。

当我们需要更新工人时,我们会执行以下操作:

  • 使 50% 的工人丧失工作能力
  • 等待大约 60 分钟,直到这些工作者没有客户端连接
  • 更新这些工人
  • 使这些工人能够
  • 对另外 50% 也做同样的事情

这不是最佳选择,但效果很好。

问题:是否可以使用 nginx 实现相同的行为?(AJP 连接除外。我们希望在后端使用 nginx-module HttpProxyModule 的 HTTPS)

答案1

就像 Martin F 所说的那样,如果不破解 nginx,你想要做的事情就无法实现——如果你要这么做,你可能想将编程资源投入到其他地方。

您说您的会话数据“太大”而无法复制——“太大”到底有多大?
超过某个点后,您就需要管理自己的会话信息,并将状态数据放入分布式数据库(可能是像 Mongo 这样的 NoSQL DB),然后让该数据库为您处理复制...

相关内容