实现tomcat基于session会话保持

实验环境:

两台服务器,分别实现java

其中一台作为nginx代理

实验原理图:

一、实现java环境

1、实现java的运行环境

(1)安装 JDK

可以在网上下载包

yum  localinstall  jdk-8u144-linux-x64.rpm

2、下载tomcat包解压

tar xvf apache-tomcat-8.5.11.tar.gz

mv apache-tomcat-7.0.78 /usr/local/tomcat

3、创建环境配置脚本

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_144

export JRE_HOME=$JAVA_HOME/jre

export CATALINA_BASE=/usr/local/tomcat

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_BASE/bin:$PATH

4、变量生效

source   /etc/profile.d/java.sh

二、配置nginx代理后端服务器

yum  insatll nginx  -y

vim /etc/nginx/nginx.conf

在http端添加

upstream realserver {

server 172.17.25.132:8080 weight=2;

server 172.17.25.131:8080 weight=1;

}

server {

listen       80;

server_name  localhost;

root  /usr/local/tomcat/webapps;

location / {

index index.jsp;

proxy_pass http://realserver;

}

...

}

三、在两台服务器上配置tomcat

1、 vim /usr/local/tomcat/conf/server.xml

写在<Engine ...>中

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">

<Manager className="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>

<Channel className="org.apache.catalina.tribes.group.GroupChannel">

<Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>

<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" autoBind="100" selectorTimeout="5000" maxThreads="6"/>

<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

</Sender>

<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

</Channel>

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter="/"/>

<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

</Cluster>

2、建立测试页面

mkdir  /usr/local/tomcat/webapps/test

cd /usr/local/tomcat/webapps/test

vim  index.jsp

注意:一台服务器title,h1写出TomcatA,一台写出TomcatB

<%@ page language="java" %>

<html>

<head><title>TomcatB</title></head>

<body>

<h1><font color="blue">TomcatB </h1>

<table align="centre" border="1">

<tr>

<td>Session ID</td>

<% session.setAttribute("abc","abc"); %>

<td><%= session.getId() %></td>

</tr>

<tr>

<td>Created on</td>

<td><%= session.getCreationTime() %></td>

</tr>

</table>

</body>

</html>

3、保持session会话

vim /usr/local/tomcat/conf/web.xml

在倒数第二行添加

<distributable/>

4、cd /usr/local/tomcat/webapps/test

mkdir WEB-INF

cd WEB-INF

cp /usr/local/tomcat/conf/web.xml .

catalina.sh start  启动服务

ss -ntl  查看8080端口是否打开

ps aux|grep tomcat

四、测试

在浏览器上测试

http://172.17.25.131/test/index.jsp

可以看到只有标题变化,但是session是不变的。

时间: 2024-10-07 07:01:09

实现tomcat基于session会话保持的相关文章

tomcat基于session会话保持以及msm会话保持

实验一.基于tomcat集群会话保持 一.实验环境: 一台nginx服务器,两台tomcat集群,出于实验的原因,我就把nginx也放在其中一台的tomcat服务器上.也就是一共两台机器,都是centos7的环境. 二.实验原理: DeltaManager会话管理器是tomcat默认的集群会话管理器,它主要用于集群中各个节点之间会话状态的同步维护.集群增量会话管理器的职责是将某节点的会话该变同步到集群内其他成员节点上,它属于全节点复制模式,所谓全节点复制是指集群中某个节点的状态变化后需要同步到集

Nginx+LAT(apache+tomcat)的实现和使用memcached保存tomcat的session会话

Nginx+LAT(Apache+tomcat)的实现和Apache反向代理和负载均衡tomcat的不同方式以及使用memcached保存tomcat的session会话 一.Nginx+LAT(Apache+tomcat)的环境结构; 1.Nginx +Apache实现负载均衡用户请求至tomcat,其中Nginx是负载均衡调度器,Apache和tomcat在同一台机器上,Apache将关于JSP的请求发送至tomcat. 2.实验结构图: 3.环境介绍,在两台CentOS7上都安装Tomca

tomcat的session会话保持方案

基础知识 ?? tomcat ????tomcat是Apache软件基金会的Jakarta项目中的核心项目,最新的Servlet和JSP规范能够在Tomcat中很好的表现.作为一个免费的开放源代码的Web应用服务器,属于轻量级的应用服务器,在中小型系统和并发量不是很大的场景下被广泛使用,是开发和调试JSP代码的首选.实际上而言,tomcat是Apache服务器的拓展,但是可以独立运行,tomcat可以独立的去处理html和jsp页面.?? memcached ????Memcached 是一个高

tomcat实现session会话保持

基础知识 tomcat是Apache软件基金会的Jakarta项目中的核心项目,最新的Servlet和JSP规范能够在Tomcat中很好的表现.作为一个免费的开放源代码的Web应用服务器,属于轻量级的应用服务器,在中小型系统和并发量不是很大的场景下被广泛使用,是开发和调试JSP代码的首选.实际上而言,tomcat是Apache服务器的拓展,但是可以独立运行,tomcat可以独立的去处理html和jsp页面 session ?在计算机中,尤其是在网络应用中,称为"会话控制".Sessio

Tomcat实现session会话保持(三)

在后端用session server做session存储服务器 使用memcache做后端session server Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信.这里主要是做为tomcat

Tomcat实现session会话保持(二)

在后端的的tomcat之上通过组播的方式实现session的共享 实验架构图: 环境准备 #清空防火墙规则 iptables -F iptables -X #临时设置关闭selinux setenforce 0 #安装jdk,centos7的源默认最高支持jdk1.8 yum -y install java-1.8.0-openjdk-devel #更改主机名解析 vim /etc/hosts 192.168.8.161 tomcat2 192.168.8.160 tomcat1 实验部署步骤:

图文并茂超详细搭建redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会

tomcat session会话复制

Tomcat实现session共享 一.如何保持session会话 目前,为了使web能适应大规模的访问,需要实现应用的集群部署.集群最有效的方案就是负载均衡,而实现负载均衡用户每一个请求都有可能被分配到不固定的服务器上,这样我们首先要解决session的统一来保证无论用户的请求被转发到哪个服务器上都能保证用户的正常使用,即需要实现session的共享机制. 在集群系统下实现session统一的有如下几种方案: 1.请求精确定位:session sticky,例如基于访问ip的hash策略,即当

redis缓存服务器(Nginx+Tomcat+redis+MySQL实现session会话共享)

一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现master-slave(主从)同步. Redis是一个高性能的key-valu