基于nginx tomcat redis分布式web应用的session共享配置.docx

上传人:牧羊曲112 文档编号:3384891 上传时间:2023-03-12 格式:DOCX 页数:6 大小:38.79KB
返回 下载 相关 举报
基于nginx tomcat redis分布式web应用的session共享配置.docx_第1页
第1页 / 共6页
基于nginx tomcat redis分布式web应用的session共享配置.docx_第2页
第2页 / 共6页
基于nginx tomcat redis分布式web应用的session共享配置.docx_第3页
第3页 / 共6页
基于nginx tomcat redis分布式web应用的session共享配置.docx_第4页
第4页 / 共6页
基于nginx tomcat redis分布式web应用的session共享配置.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于nginx tomcat redis分布式web应用的session共享配置.docx》由会员分享,可在线阅读,更多相关《基于nginx tomcat redis分布式web应用的session共享配置.docx(6页珍藏版)》请在三一办公上搜索。

1、基于nginx tomcat redis分布式web应用的session共享配置基于nginx tomcat redis分布式web应用的session共享配置 一、前言 nginx作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存、web server负载均衡等功能,由于其轻量级、高性能、高可靠等特点在互联网项目中有着非常普遍的应用,相关概念网上有丰富的介绍。分布式web server集群部署后需要实现session共享,针对 tomcat 服务器的实现方案多种多样,比如 tomcat cluster session 广播、nginx IP hash策略、nginx sti

2、cky module等方案,本文主要介绍了使用redis服务器进行 session 统一存储管理的共享方案。 相关应用结构参照下图: 二、环境配置 测试环境基于 Linux CentOS 6.5,请先安装 tomcat、redis、nginx相关环境,不作详细描述,本文测试配置如下: Version 1.6.2 7.0.54 7.0.54 2.8.19 IP_Port 10.129.221.70:80 10.129.221.70:8080 10.129.221.70:9090 10.129.221.70:6379 nginx tomcat_1 tomcat_2 redis 三、构建 tomca

3、t-redis-session-manager-master 1、由于源码构建基于gradle,请先配置gradle环境。 2、从github获取 tomcat-redis-session-manager-master 源码,地址如下: 3、找到源码中的 build.gradle 文件,由于作者使用了第三方仓库,需要注册帐号,太麻烦,注释后直接使用maven中央仓库,同时注释签名相关脚本并增加依赖包的输出脚本copyJars,修改后的 build.gradle文件如下: View Code 4、执行gradle命令构建源码,编译输出tomcat-redis-session-manager-ma

4、ster 及依赖jar包 gradle build -x test copyJars 所有输出列表文件如下: 四、tomcat 配置 安装配置两台 tomcat web服务器,分别修改 Connector 端口号为8080和9090,并确保都能正常工作,当然如果分布在不同的主机则可以使用相同端口号。 五、编写测试页面 为了区别2台tomcat的访问,分别编写页面并打包部署: 1、为tomcat_1编写测试页面,显示 “ response from tomcat_1 ”,同时页面提供按钮显示当前session值,打包并发布到 tomcat_1 服务器; 2、为tomcat_2编写测试页面,显示

5、“ response from tomcat_2 ”,同时页面提供按钮显示当前session值,打包并发布到 tomcat_2 服务器; 此时分别访问 http:/10.129.221.70:8080 和 http:/10.129.221.70:9090 地址,因为访问的是不同web服务器,所以各自显示不同的页面内容及session值肯定不同。 六、tomcat session manager 配置 修改配置使用 tomcat-redis-session-manager-master 作为 tomcat session 管理器 1、分别将第三步生成的 tomcat-redis-session-

6、manager-master 及依赖jar包覆盖到 tomcat 安装目录的 lib 文件夹 2、分别修改2台 tomcat 的 context.xml 文件,使 tomcat-redis-session-manager-master 作为session管理器,同时指定redis地址和端口。 context.xml 增加以下配置: 3、分别重启2台 tomcat 服务器。 七、nginx配置 1、修改default.conf配置文件,启用 upstream 负载均衡 tomcat Cluster,默认使用轮询方式。 upstream site server localhost:8080; se

7、rver localhost:9090; server listen 80; server_namelocalhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / #root /usr/share/nginx/html; #index index.html index.htm; index index_tel.jspindex.jsp index.html index.htm ; proxy_redirect off; proxy_set_header Host $host;

8、 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_buffers 32 4k; proxy_connect_timeout 3; proxy_send_timeout 30; proxy_read_timeout 30; proxy_pass http:/site; #error_page 404 /404.html;

9、# redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html root /usr/share/nginx/html; # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location .php$ # proxy_pass http:/127.0.0.1; # # pass the PHP scripts to FastCGI server l

10、istening on 127.0.0.1:9000 # #location .php$ # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_indexindex.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; # # deny access to .htaccess files, if Apaches document root # concurs with nginxs one # #locatio

11、n /.ht # deny all; # 2、nginx重新加载配置 nginx -s reload 八、测试结果 1、访问 http:/10.129.221.70:8080 直接请求到tomcat_1服务器, 显示 “ response from tomcat_1 ”, session 值为 56E2FAE376A47F1C0961D722326B8423; 2、访问 http:/10.129.221.70:9090 直接请求到tomcat_2服务器, 显示 “ response from tomcat_2 ”, session 值为 56E2FAE376A47F1C0961D722326B

12、8423; 3、访问 http:/10.129.221.70 请求到nginx反向代理到指定Web服务器,由于默认使用轮询负载方式, 反复刷新页面显示的内容在“ response from tomcat_1 ” 和 “ response from tomcat_2 ”之间切换,但 session 值保持为 56E2FAE376A47F1C0961D722326B8423; 4、使用redis-cli 连接redis服务器,查看会显示有 “56E2FAE376A47F1C0961D722326B8423” key的 session 数据,value为序列化数据。 九、至此实现了基于nginx负载均衡下 tomcat 集群的 session 一致性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号