nginx+tomcat配置负载均衡

1,前期准备

两个tomcat,nginx,一个测试项目


修改配置文件,能同时运行两个tomcat

修改server.xml





为了区分两个tomcat,修改对应的启动文件startup,bat

在第一行添加

然后分别启动tomcat


分别访问测试项目



2 配置nginx

修改配置文件,将tomcat的地址给添加进去


修改nginx的监听端口(默认为80)


有的电脑开启了IIS的服务,80端口被占用



运行nginx.exe,一个窗口一闪而过

window下可以直接查看进程


然后在浏览器中输入 http://localhost:8080/nginxdemo/


刷新可能会改变


至此,一个简单的负载均衡配置完成

3 nginx配置描述

  1)轮询(默认),每个web请求按时间顺序分配到不同的服务器


2)权重(设置轮询比率,用于后端服务器性能不均的情况,默认为1)

访问比率tomcat2:tomcat1为2:1,其它规则和轮询一致

3)ip_hash  

 使用负载均衡时需要注意session丢失的问题,可以使用ip_hash,使同一客户端连接进入到同一个服务器中,当服务器宕机时,自动跳转到其它服务器,


4)集群/分布式下的session处理策略

在搭建完分布式环境后,如果不做任何处理的话,会出现用户未登录的情况,因为假设有两台服务器A,B,nginx将用户请求发送给服务器A,A会围棋创建session,当用户再次请求时,若nginx将请求发送给服务器B,则此时会出现未登录的情况,所以必须考虑到session共享的问题

  解决方法1:将用户请求和服务器绑定在一起,比如直接设置ip_hash

 优点:简单,不需要对session做人恶化处理

  缺点:负载不均衡了,且缺乏容错性,如果服务器宕机之后,session会丢失

解决方法2:在所有服务器上都保存用户的session信息,当任何服务器上session变化时,该节点会把session内容序列化,广播给其它所有节点

优点:各个服务器的session能实时响应

缺点:实现方式有限,必须只能在同一种组件之间实现,比如用tomcat,其它必须全部用tomcat

解决方法3:修改tomcat的session存储机制,使之能把session序列化,存放到memcached (Memcached 是一套高性能的、分布式内存对象缓存系统。)中

使用redis+tomcat+nginx实现session共享

第一步:下载插件tomcat-cluster-redis-session-manager-2.0.2.jar

下载地址:https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/tag/2.0.2

解压之后,按照readMe的步骤配置

  1)将lib中的jar包复制到tomcat/lib目录下


2)配置环境变量


3)将conf下的配置文件复制到tomcat/conf下

4)修改tomcat/conf/content.xml,增添配置


5)修改session的过期时间 (tomcat/conf/web.xml),默认为30分钟


屏蔽掉nginx的ip_hash配置


运行测试程序,注意,此时需要启动redis,否则会报错


此时会发现,无论网页怎么刷新,sessionid都是固定的




至此,session共享已经完成

使用Redis实现session共享的好处就是,把session管理放在redis中,如果服务器重启或挂机,sessionId保存在redis中,下次重启后一样生效,避免sessionId失效,同样redis最好也做集群,避免redis重启或挂机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hero_孙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值