关于 Nginx 反向代理的后端服务重启的问题

2013-08-01 16:42:14 +08:00
 rrfeng
前 Nginx,后 jboss

需要重启 jboss 的时候,如果直接重启,虽然 Nginx 的检测机制能够发现节点失效并停止转发,

但之前已经存在的连接会丢失。一般性的服务是没有问题的,但如果是重要性的服务,比如用户已登录,session 无法保持,就会出现问题。

保守的做法是先从 Nginx 的配置文件里把要重启的服务器屏蔽掉,reload,等待连接完全结束,重启 jboss ,修改 Nginx 配置,reload



问题是:好麻烦啊,有没有一键式解决方案?或者是我们的设计有问题?
4457 次点击
所在节点    问与答
5 条回复
rrfeng
2013-08-01 16:49:26 +08:00
咦,刚看到了 move 和 edit 按钮,一转眼没了,是限时的吗?
-------------------

APPEND:还是我理解有问题?
cxh116
2013-08-01 16:52:04 +08:00
jboss的session保存到memcached或数据库里面,应该就没有问题了吧?
rrfeng
2013-08-01 17:04:40 +08:00
@cxh116
session 可以共享,但是未完成的事务没法共享吧?
plprapper
2013-08-01 17:12:08 +08:00
session保存在独立的cache里 是很有必要的,要不然你只能半夜发布了。~~~
alswl
2013-08-26 17:58:40 +08:00
nginx upstream 可以配置 max_fails fail_timeout; 根据需要优化 timeout 策略,好像默认是 max_fails=1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/77673

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX