使用Redis存储Nginx+Tomcat负载均衡集群的Session的详细配置

来源:互联网 发布:百度域名 编辑:程序博客网 时间:2024/05/29 16:24

1.基本配置必备项,tomcat+nginx+redis+jar包如图所示
nginx
解压nginx在文件夹输入cmd
这里写图片描述
打开cmd输入 start nginx.exe 命令
启动nginx 在任务管理器可以查看到进程

nginx常用命令
1.快速停止或关闭 nginx -s stop
2.正常停止或关闭 nginx -s quit
3.配置文件修改重装载命令 nginx -s reload
niginx默认端口号是80
可以在浏览器进行测试 输入localhost
如图
这里写图片描述

eg:
创建俩个文件夹分别为t1,t2放俩个tomcat用nginx来管理俩个tomcat
tomcat 配置
server.xml 配置项目路径
这里写图片描述
path是tomcat访问这个应用的URL路径。

把java项目拷到webapp下删除其他的东西。
添加 jvmRoute=”t1” 用来区分tomcat
并更改tomcat端口号 为8081
如图所示eg:
这里写图片描述
另一个tomcat做同样的更改 端口号为8082
jvmRoute=”t2” 项目路径为t2/tomcat/webapp/**
可以进入tomcat bin文件夹点击startup开启tomcat在url进行测试
如果tomcat正常访问项目继续下一步

在nigix conf文件夹下的nginx.conf进行配置
建议下载一款软件editPlus进行编辑

ygc可以更改 ip_hash;访问粘合
upstream ygc{

  server localhost:8081;  #连接本地服务器端口  server localhost:8082;  ip_hash;               

}

//配置拦截

location / {
root html;
index index.html index.htm;
proxy_pass http://ygc;
proxy_redirect off;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;  
proxy_set_header X-Real-IP
remote_addr;
proxy_set_header Host $http_host;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;

}
eg:如图
这里写图片描述

基本策略概念
1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。(分配给不同的tomcat)
2.weight(权重)
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。(能者多劳)
3.ip_hash
每个请求按访问ip的hash结果分配,这样每个访问固定访问一个后端服务器,可以解决session的问题(访问以后就粘在一起)
4.fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配
5.url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效

cmd文件夹启动redis
命令 redis-server.exe redis.conf 启动redis
redis-cli.exe -h 127.0.0.1 -p 6379 开启客户端
可以输入
keys * 查看所有
set username “ygc” 设置name
get username 获取name
测试–如果能获取到说明没问题
如图
这里写图片描述
下载redis和tomcat融合时所需要的jar包,将其放到各个tomcat的lib文件夹下

commons-pool 连接池

jedis-2.7.2操作redis的java代码

tomcat-redis-session tomcat和redis结合它的session

更改tomcat 的 context.xml
session共享
配置连接池 俩个tomcat都需要更改
这时候可以取消掉nginx的 ip_hash 更改为默认的轮询策略

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"     host="localhost"      port="6379"      database="0"      maxInactiveInterval="60" />

如图
这里写图片描述
启动顺序-redis-tomcat-nginx
项目测试
这里写图片描述
这里写图片描述

阅读全文
0 0
原创粉丝点击