假设你已经掌握了nginx和redis的安装和简单配置。笔者是mac环境,用homebrew安装nginx和redis不要太容易。
所有源码公开 点击去下载
说明
- 在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
在application.properties配置文件中修改两个不同端口并用
mvn package spring-boot:repackage
命令生成两个jar文件.然后java -jar 命令分别运行Demo假设我们这里分配的端口是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;
}
}
}
- 效果预览
一个简单的系统,首次访问系统需要登录。登录成功后页面跳转到首页。部署了两套系统,端口分别为9001和9002。
-
访问localhost:80,可以看到分配到了9001端口
首次访问系统需要登录。
-
登录进去后重定向到9002端口
登录成功后,重定向请求,nginx分配请求到9002端口,此时9002是第一次访问,但是从截图看得出来Session 已经存在了,没有再次提示登录。负载均衡成功
-
刷新页面端口变成9001
可以多刷新几次,结果是9001和9002端口反复切换访问。
多次刷新可以看得出Session已实现共享。至此简单的使用已经完成,下一节开始深入源码研究Spring如何实现spring-session。
所有源码公开 点击去下载