美文网首页java全栈Java学习笔记
nginx+springboot+redis 负载均衡Sessi

nginx+springboot+redis 负载均衡Sessi

作者: 蓝山牧童 | 来源:发表于2017-10-16 16:17 被阅读134次

    假设你已经掌握了nginx和redis的安装和简单配置。笔者是mac环境,用homebrew安装nginx和redis不要太容易。

    所有源码公开 点击去下载

    说明

    1. 在application.properties 添加redis相关配置
        #spring.redis.database
        spring.redis.hostname=127.0.0.1
        spring.redis.port=6379  
        spring.redis.password=admin
        spring.redis.pool.maxActive=8  
        spring.redis.pool.maxWait=-1  
        spring.redis.pool.maxIdle=8  
        spring.redis.pool.minIdle=0  
        spring.redis.timeout=0
    
    1. 在application.properties配置文件中修改两个不同端口并用 mvn package spring-boot:repackage 命令生成两个jar文件.然后java -jar 命令分别运行Demo

    2. 假设我们这里分配的端口是9001和9002,然后在nginx.conf配置反向代理
      Mac下nginx配置如下

    http {
        ...
        upstream dis{
            server 127.0.0.1:9001 weight=1; //weight表示请求分配的权重
            server 127.0.0.1:9002 weight=1;
        }
        server {
           listen  80;
            server_name  localhost;
            location / {
                proxy_pass http://dis;
            }
        }
    }
    
    1. 效果预览
      一个简单的系统,首次访问系统需要登录。登录成功后页面跳转到首页。部署了两套系统,端口分别为9001和9002。
    • 访问localhost:80,可以看到分配到了9001端口

    首次访问系统需要登录。


    访问localhost:80
    • 登录进去后重定向到9002端口

    登录成功后,重定向请求,nginx分配请求到9002端口,此时9002是第一次访问,但是从截图看得出来Session 已经存在了,没有再次提示登录。负载均衡成功

    登录进去后重定向到9002端口
    • 刷新页面端口变成9001

    可以多刷新几次,结果是9001和9002端口反复切换访问。

    刷新页面发现端口是9001

    多次刷新可以看得出Session已实现共享。至此简单的使用已经完成,下一节开始深入源码研究Spring如何实现spring-session。

    所有源码公开 点击去下载

    相关文章

      网友评论

        本文标题:nginx+springboot+redis 负载均衡Sessi

        本文链接:https://www.haomeiwen.com/subject/ectluxtx.html