nginx+Tomcat负载均衡

实现负载均衡第一步:nginx+Tomcat  先不考虑session问题 

nginx介绍:https://blog.csdn.net/dylanzr/article/details/52135196https://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共享

关于集群之类的参照上面的连接。

原文地址:https://www.cnblogs.com/ljy-skill/p/9057188.html