Nginx+Tomcat+Redis负载均衡实现session共享

一、准备工作

中间件:Tomcat、Redis、Nginx

jar包:commons-pool2-2.4.2.jar、jedis-2.8.0.jar、tomcat-redis-session-manager-2.0.0.jar

二、配置Tomcat

多台Tomacat需要配置不同的端口号

将jar包存放到apache-tomcat-9.0.7\lib目录下

三、实现

  1. 下载nginx和tomcat, 复制一份tomcat作为tomcat2服务器

  2. 分别修改tomcat1、tomcat2的server.xml配置文件

tomcat2一样, 对应修改为28005, 28080, 28009

/conf/context.xml

host为Redis的ip地址,port为端口,database为数据库。

为了区分tomcat1、tomcat2, 修改F:\test_nginx_tomcat\tomcat1\webapps\ROOT目录下的index.jsp文件内容

  1. 分别启动tomcat1、tomcat2, /bin目录下startup.bat命令, 访问http://localhost:18080http://localhost:28080, 查看是否启动成功

  2. 到目前为止两台tomcat服务器已经准备就绪了, 但是还没配置nginx, 所以此时是访问不了http://localhost的, 如:

  3. OK, 现在配置nginx, 其实就是修改nginx.conf文件

这是参考别人的配置, 最重要的是下面中的内容

  • upstream: 指定服务器集群, 我们开启了tomcat1、tomcat2, 定义2个server即可

  • weight: 权重, tomcat2是1的两倍, 后面测试发现, 基本上tomcat1和tomcat2的请求次数比例为1:2

  • server: 监听localhost:80的所有请求, 并将请求根据upstream配置的集群规则进行分发, 注意, proxy_pass的test.nginx.com必须跟upstream的test.nginx.com一致

    proxy_connect_timeout 3; # 当其中一台服务器宕机后, 请求连接的超时时间, 设为3s, 可以看到tomcat2宕机后, 当轮询到tomcat2服务器时, 响应会有3s的延时, 3s后自动将请求转到tomcat1服务器, 实现了集群的高可用, 同理, 开启tomcat2后, nginx恢复正常的轮询请求

    proxy_read_timeout 1;

    proxy_send_timeout 1;

  1. 保存配置, 启动nginx, 双击启动

浏览器请求http://localhost, 不断刷新、停掉任意一台服务器, 可以看到文章实现目标中的效果

三、测试

先后启动Redis服务、两台tomcat服务器、Nginx服务器。

在Tomcat启动页面加上标识,判断两台服务器中sessionId是否一致。

(0)

相关推荐

  • Centos7环境下搭建Nginx反向代理多个Tomcat的负载均衡集群

    我要.发光_2332019-03-22 23:25:34 分类专栏:大学作业 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:htt ...

  • Docker Nginx容器和Tomcat容器实现负载均衡与动静分离操作

    这篇文章主要介绍了Docker Nginx容器和Tomcat容器实现负载均衡与动静分离操作,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧下载Tomcat8镜像12345[root@l ...

  • Linux学习10-CentOS搭建nginx负载均衡环境

    前言 当自己的web网站访问的人越来越多,一台服务器无法满足现有的业务时,此时会想到多加几台服务器来实现负载均衡. 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,怎样将同一个域名的访问分散 ...

  • 实现ASP.Net Core3.1运行在DockeDesktop下并用Nginx实现负载均衡

    一.首先去https://www.docker.com/products/docker-desktop下载Windows版本的Docker Desktop并安装(需要win10专业版以上操作系统,并启 ...

  • 前端技术分享:Nginx负载均衡视频,基础的实战应用

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行.其特点是占有内存少,并发处理能力强,以高性能低资源消耗而闻名,国内 ...

  • Nginx负载均衡配置误区

    之前有很多朋友问关于Nginx的upstream模块中max_fails及fail_timeout,这两个指令,分别是配置关于负载均衡过程中,对于上游(后端)服务器的失败尝试次数和不可用时间,很多人不 ...

  • Nginx负载均衡算法

    负载均衡用来解决用户请求到来时如何选择 upstream server 进行处理,这里主要介绍几种负载均衡算法. 1.round-robin:轮询,默认负载均衡算法,即以轮询的方式将请求转发到上游服务 ...

  • 解析Nginx负载均衡

    摘要:对于一个大型网站来说,负载均衡是永恒的话题.随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP.Citrix NetScaler.Radware等等,虽然可以解决问 ...

  • nginx负载均衡简单写法

    用nginx反向代理,把80端口的/a请求随机分到group1的站点,weight=1配置权重.