博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5.Nginx的session一致性(共享)问题配置方案1
阅读量:6039 次
发布时间:2019-06-20

本文共 2439 字,大约阅读时间需要 8 分钟。

1:Session共享

  为什么要实现共享,如果你的网站是存放在一个机器上,那么会话数据就在这台机器,但是如果你使用了负载均衡把请求分发到不同的机器呢?这个时候会话

id在客户端是没有问题的,但是如果用户的两次请求到了两台不同的机器,而它的session数据可能存在其中一台机器,这个时候就会出现取不到session数据的情

况,于是session的共享就成了一个问题。

2:Session一致性(共享)解决方案

  1、session复制:tomcat 本身带有复制session的功能

  2、共享session
    – 需要专门管理session的软件memcached
    – memcached 缓存服务,可以和tomcat整合,帮助tomcat共享管理session

2.1:

  1.Linux系统安装memcached,首先要先安装libevent库:yum install libevent libevent-deve

  2.安装 Memcached:.yum -y install memcached

  3.Memcached 启动运行:service memcached start

  4.Memcached 测试连接:使用telnet 命令并指定主机ip和端口来连接 Memcached 服务。语法:telnet HOST PORT,HOSTPORT 为运行

Memcached 服务的 IP 和 端口

  实例演示如何连接到 Memcached 服务并执行简单的 set 和 get 命令

         本实例的 Memcached 服务运行的主机为 127.0.0.1(本机) 、端口为 11211

telnet 127.0.0.1 11211Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.set foo 0 0 3                                             保存命令   3为长度 0为存活时间bar                                                             数据STORED                                                    结果get foo                                                        取得命令VALUE foo 0 3                                           数据bar                                                              数据END                                                             结束行quit                                                            退出

   

2.2:Tomcat配置名称和session一致性配置(tomcat整合,让Tomcat从该缓从数据库中取session)

  5.拷贝中lib下的jar包到tomcat的lib下(分别是200和201web服务器连接Memcached的jar包)

  6.修改Engine标签:tomcatserver.xml配置jvmRoute属性(分别是200和201服务器)方便查看sessionid里面带有的Tomcat名字

  7.Tomcat首页面index.jsp配置(分别是200和201服务器)

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>     -----根据情况加,我加了报错了,去掉就好了SessionID:<%=session.getId()%>
SessionIP:<%=request.getServerName()%>

tomcatxxx page

  进行访问:http://192.168.232.201:8080/                     

  

  进行访问:http://192.168.232.200:8080/

  

  进行访问:http://shizhan2:8888/,通过域名访问192.168.232.201,使用反向代理继而访问201和200的Tomcat服务器,不断刷新页面,发现

sessionid是不断变化的,所以下面配置Memchched缓存数据库(启动Memchched服务)

  8.修改Tomcat的context.xml文件,配置Manager

   配置好后使用域名进行访问:http://shizhan2:8888/

  

5.利用redis实现session共享

  安装redis缓存数据库:yum -y install redis

  修改配置文件vi /etc/redis.conf,将bind的127.0.0.1修改为本机地址(192.168.232.201:安装了redis),否则只能通过localhost访问了

  导入redislib中三个jar包到tomcat中(201和200),包连接:

  

  在tomcat/conf下的context.xml中添加配置(201和200):

 
 

  

  

 

  

  

  

 

  

  

 

  

  

转载于:https://www.cnblogs.com/yaboya/p/9101627.html

你可能感兴趣的文章
FOJ有奖月赛-2015年11月 Problem A
查看>>
电商网站中添加商品到购物车功能模块2017.12.8
查看>>
android 模拟器 hardWare 属性说明
查看>>
六款值得推荐的android(安卓)开源框架简介
查看>>
max_element( )
查看>>
CSS Grid 布局
查看>>
接口的幂等性
查看>>
java中的类
查看>>
android 自定义文字跑马灯 支持拖拽,按住停止滚动,自定义速度
查看>>
SpringMVC完成文件上传的基本步骤
查看>>
实例168 使用指针输出数组元素
查看>>
bind 与unbind
查看>>
CSS: Flexbox
查看>>
Python学习
查看>>
Java并发_volatile实现可见性但不保证原子性
查看>>
百度地图添加带数字标注
查看>>
【luogu 1908】逆序对
查看>>
pthread_create线程创建的过程剖析(转)
查看>>
android存储访问框架Storage Access Framework
查看>>
周总结
查看>>