nginx+Tomcat负载均衡
实现负载均衡第一步:nginx+Tomcat 先不考虑session问题
nginx介绍:https://blog.csdn.net/dylanzr/article/details/52135196,https://www.cnblogs.com/wang-meng/p/5861174.html
Windows下Nginx的启动、停止等命令
https://blog.csdn.net/ppby2002/article/details/38681345
准备2个Tomcat修改为不同 的端口号,nginx进行配置。
这篇文章讲解比较详细:http://www.cnblogs.com/fanshuyao/p/7903491.html 针对nginx配置 也可参考:http://www.cnblogs.com/lipings/p/7332071.html
主要配置点:
关于nginx负载均衡的策略,有以下几种方式:
2.1 ip_hash:
根据客户端地址,同一个ip地址分配给同一台后段服务器处理,这样可以解决session的问题。但是如果该后端服务器宕掉,则session会失效。
缺点:局域网内的用户使用的是同一个公网IP,这对于ip_hash来说,会被认为是同一个客户端,因此总是会将这个公网ip的请求交给同一个后端服务器来处理,因此起不到负载均衡的作用。
2.2 轮询:
每一个请求,按照时间顺序,逐一分配给后端不同的服务器。
缺点:需要对后端服务器做session共享。
2.3 权重:
每个请求,根据后端服务器的权重值来转发。权重越大,表明该服务器处理能力相对越高。主要用于后端服务器性能不同的情况。
这里只是截图详情及问题点在上一个url中有介绍。
2台Tomcat启动后,nginx启动后,在浏览器中输入http://localhost/项目名 即可映射到Tomcat上。 第一步结束。
负载均衡的目的是集群服务器为用户提供服务,但是当请求分发到不同的服务器时候,那么该服务器上没有用户登陆过的信息和操作信息 是不是用户需要从新登陆一次方可进入系统,这种情况是显然不行的,那么问题来了,我们要做一个session共享,实现服务器集群中的用户信息共享。
基于session共享的方案有几种:
参看:https://blog.csdn.net/kwinh/article/details/54910371,,https://blog.csdn.net/qq_34666857/article/details/77112985
如果使用redis的话参考:https://blog.csdn.net/renfufei/article/details/38474435 Windows下安装并设置Redis
https://blog.csdn.net/li396864285/article/details/54629898 redis桌面管理工具 redis-desktop-manager使用指南
关于Tomcat8的session共享会有些问题,参看:https://blog.csdn.net/jerome_s/article/details/52658946
基于spring-session管理的session共享
参考:http://www.cnblogs.com/youzhibing/p/7348337.html
如果像我一样查看了这么多资料还是搞不定 就去我的网盘下载一份入门级的demo,实现spring-session+redis的session共享
链接:https://pan.baidu.com/s/1hWk6NHGFlBF6aBRnsOFNlA 密码:kkcv
我测试使用的是一台nginx+2台Tomcat
效果图:
=================
刷新浏览器2个页面交替显示,说明2个Tomcat用的是同一份session,实现了session共享
关于集群之类的参照上面的连接。