美文网首页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