redis+nginx负载均衡实现tomcat集群的session共享(windows)

Windows-tomcat集群搭建

一、准备好所有集群搭建的安装包

image-20230310170908761

二、redis安装

1.redis修改配置文件

安装完redis后默认安装在C:\Program Files\Redis目录下

image-20230310162156324

配置文件需要修改两处,将redis配置为本机访问(仅存tomcat中的session使用),需要设置redis密码

# Examples:
# bind 192.168.1.100 10.0.0.1
#不开放外网访问 仅127.0.0.1能访问
bind 127.0.0.1
#更改密码 需要设置什么密码请按:requirepass xxxx设置 如设置123456为requirepass 123456
# requirepass foobared 
requirepass 123456
# Command renaming.

三、tomcat安装

以安装两个tomcat,端口分别为8080、9080为例,以zip方式安装

安装参考:https://jingyan.baidu.com/article/1612d50057feffa30f1eee03.html

1.tomcat环境变量

在系统变量中添加两个变量,变量值为tomcat安装地址

CATALINA_BASE_8080
CATALINA_BASE_9080

image-20230310164420804

编辑path,新增四个值。注意这四个值需要在原有安装的tomcat的环境变量上面,否则加载顺序会出问题

%CATALINA_HOM_8080%\bin
%CATALINA_HOME_8080%\lib
%CATALINA_HOME_9080%\bin
%CATALINA_HOME_9080%\lib

image-20230310164725981

2.修改context.xml

注意:两个tomcat都需要修改

image-20230310165652406

修改密码为设置的redis密码

<Valve className="com.naritech.nicole.gump.RedisSessionHandlerValve"/>
    <Manager className="com.naritech.nicole.gump.RedisSessionManager"
     host="127.0.0.1"
     password="123456"
     port="6379"
     database="0"
     maxInactiveInterval="60"
     /> 

3.设置tomcat为服务

注意:两个tomcat都需要启动为服务

image-20230310171546428

四、nginx安装

进入nginx.conf,修改为对应的端口映射,选择对应的集群负载均衡策略

 include       mime.types;
    default_type  application/octet-stream;
    upstream tomcatlist {
      server 127.0.0.1:8080 weight=1;
      server 127.0.0.1:9080 weight=1;

    }
    server {
        listen       8100;
        server_name  127.0.0.1:8100;
        location / {
             proxy_pass http://tomcatlist;
             #proxy_cookie_path /fhadmin/ /;
             add_header X-Slave $upstream_addr;
             #允许跨域请求的域,*代表所有
             add_header 'Access-Control-Allow-0rigin' *;
             #允许带上cookie请求
             add_header 'Access-Control-Allow-Credentials' 'true';
             #允许请求的方法,比如GET/POST/PUT/DELETE
             add_header 'Access-Control-Allow-Methods' *;
             #允许请求的header
             add_header 'Access-Control-Allow-Headers' *;
             proxy_redirect  off;
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For
             $proxy_add_x_forwarded_for;
        }    
    }

五、测试

1.确认redis已启动

image-20230310171215247

2.确认tomcat集群均已启动

image-20230310173656372

3.双击nginx.exe启动nginx

image-20230310171346106

4.登录网页试试

在同一个浏览器中,登录

127.0.0.1:8080/WebContent/views/sys/index/index.html

再打开

127.0.0.1:9080/WebContent/views/sys/index/index.html

发现不用再登录,直接跳转,即为成功

连接redis可视化工具查看到redis中已存在对应的session

image-20230310174937118


  目录