开发者社区> 问答> 正文

nginx,tomcat手动重启的问题

有一套JAVA的WEB系统,前端用nginx代理2个Tomcat(tomcat版本为5.5,64位),2个tomcat之间做了集群处理,运行的实际效果是2个tomcat之间的会话也确实同步了。由于业务需求的调整,tomcat上经常需要重新部署新的class及相关的一些xml配置文件,文件部署完成后,我们手工依次重启tomcat,由于在nginx上的负载策略我们采用默认轮询的方式,这时会出这样的现象,第一台tomcat重启第二台tomcat保持运行的过程中,客户端访问系统的时候,第一次访问页面的时候正常,第二次访问页面的时候,一直在等待,出现这样的情况,想想nginx的负载策略,也属正常情况(nginx轮询代理了)。
我的问题是:nginx有没有一种机制,在第一台tomcat重启前,提前发起一个通知,通知tomcat1即将要重启,让tomcat2暂时接管所有的请求,tomcat1重启成功后,在恢复负载。

展开
收起
落地花开啦 2016-03-25 14:31:31 3570 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    没有这样的机制,你可以调低 Nginx proxy 的 timeout 时间, 30-50之间就可

    2019-07-17 19:14:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载