Nginx实现Tomcat集群+session共享(windows环境下)

1,先在nginx官网下载windows版本的nginx : 下载地址

Nginx实现Tomcat集群+session共享(windows环境下)_第1张图片

 

2.新建两个文件夹,tomcat1,tomcat2,把tomcat丢进去.分别将两个tomcat的配置文件中的一些端口改掉,我这里就不配图了

tomcat1: 将其中的原8005端口改成8006,8080改成8088,8009改成8010

tomcat2: 将其中的原8005端口改成8007,8080改成8089,8009改成8011

3.修改nginx的配置文件nginx.conf

添加服务器集群:

#服务器的集群
    upstream tomcatserver {
        server 127.0.0.1:8088 weight=1;  #weight是权重,值越大,被访问到的机会越大
        server 127.0.0.1:8089 weight=1;
    }

修改 location

location / {
            proxy_pass http://tomcatserver;
            proxy_connect_timeout   1;
            proxy_send_timeout      1;
            proxy_read_timeout      1;
            proxy_set_header  X-Real-IP  $remote_addr; 
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

如下图:

Nginx实现Tomcat集群+session共享(windows环境下)_第2张图片

注意 : 这里有坑,我踩过。如果你是springboot项目,upstream的命名不能带下划线(如:tomcat_server),否则会报400错误

 

4,启动两个tomcat,和nginx,为了测试,我们将两个tomcat中项目的登录页面做些修改,效果如下

Nginx实现Tomcat集群+session共享(windows环境下)_第3张图片

Nginx实现Tomcat集群+session共享(windows环境下)_第4张图片

5.测试nginx是否起作用 直接数据127.0.0.1:80,刷新几次,发现他确实随机访问了两台tomcat

Nginx实现Tomcat集群+session共享(windows环境下)_第5张图片

Nginx实现Tomcat集群+session共享(windows环境下)_第6张图片

6.如何实现tomcat集群之间的session共享,我用的是springSession+redis,redis安装步骤我就不写了,很简单

6.1:

pom文件添加以下配置


    org.springframework.boot
    spring-boot-starter-data-redis


    org.springframework.session
    spring-session


6.2:

application.properties配置文件中加入以下配置(我的redis没设置密码,所以注掉了)

spring.session.store-type=redis
spring.redis.host=127.0.0.1
#spring.redis.password=
spring.redis.port=6379

注意:和登录相关的一些实体类需要实现实例化接口,否则启动会报错

7。启动项目测试,session共享spring框架会自动帮你完成,session共享的测试我就不写了,自己可以写个session在页面上测试。

你可能感兴趣的:(备忘)