Nginx负载均衡Tomcat切换注意事项
Contents
在生产环境使用nginx+tomcat
做负载均衡。众所周知,tomcat的shutdown在生产环境是很慢的,如果这时候,不先修改nginx的upstream模块,先让要停止的那台tomcat成为shuotdown或者直接注释掉,而直接shutdown了tomcat的话,这样子,如果有刚好请求分配到了这个要停止的tomcat,就会导致用户的连接是一直等待中了.~~
nginx的负载均衡虽然会自动切换,但是默认情况下它会一直等待到那台tomcat完全shutdown了,才会将请求转交给另一台服务器.所以,才会导致用户请求一直在等待中.
建议
先在nginx配置文件里,注释掉要停止的tomcat的那台服务器的upstream 的iP配置,然后sudo nginx -s reload
一下.
nginx负载均衡问题
还有个注意问题,使用ip_hash
算法做均衡,还是有比较大问题(如果做了分布式session除外)并且如果没有做session共享,这样子用户会非常容易提示重新登录。
其实这个要根据网络运营商的具体情况,我自己就测试过所住的地方,IP是几秒钟变一次的,如果这时使用了ip_hash
算法,还是很容易导致用户要不停的重新登录(如果没有用session,或者使用了session共享的,可以忽略这个问题)。