用nginx禁用worker吗?

我们想迁移到nginx,并想要有和我们现在一样的行为:

我们使用下面的负载均衡设置:Apache mod_jk和AJP连接到JBoss 4.2.3 workers。 安装JKStatusManager以在线configuration工作人员设置。 工人们有粘性会议。 会话故障切换没有会话复制。

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

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

  • 禁用50%的工人
  • 等待大约60分钟,直到这些工作者连接了0个客户端
  • 更新这些工人
  • 使这些工人
  • 对另外50%做同样的事情

这不是最佳的,但它工作得很好。

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

就像Martin F所说的,如果没有黑客入侵,你所要做的就是做不到 – 如果你打算这么做的话,你可能需要在其他地方投入编程资源。

你说你的会话数据“太大”,无法复制 – “太大”有多大?
除了某一点,是时候pipe理自己的会话信息,并把状态数据放入分布式数据库(可能是像Mongo这样的好的NoSQL数据库),让它为你处理复制。