author:JevonWei

版权声明:原创作品


环境

tomcatA    172.16.253.108
tomcatB 172.16.253.105
代理服务器 172.16.253.191

Tomcat session集群

  • Cluster配置文档http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html

Tomcat A

[root@tomcatA ~]# yum -y install tomcat-lib tomcat tomcat-webapps tomcat-docs-webapp tomcat-admin-webapps \\tomcat-admin-webapps为tomcat管理应用程序包 tomcat-docs-webapp为tomcat的在线文档软件包
[root@tomcatA ~]# iptables -F
[root@tomcatA ~]# setenforce 0
[root@tomcatA ~]# ls /usr/share/tomcat/webapps/
docs examples host-manager manager ROOT sample
[root@tomcatA ~]# ls /var/lib/tomcat/webapps/
docs examples host-manager manager ROOT sample
[root@tomcatA ~]# mkdir -pv /data/webapps/ROOT/{classes,lib,WEB-INF}
[root@tomcatA ~]# vim /data/webapps/ROOT/WEB-INF/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><font color="red">TomcatA.magedu.com</font></h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("magedu.com","magedu.com"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
[root@tomcatA ~]# vim /data/webapps/ROOT/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><font color="red">TomcatA.magedu.com</font></h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("magedu.com","magedu.com"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html> 配置Tomcat 集群
[root@tomcatA ~]# vim /etc/tomcat/server.xml <Engine name="Catalina" defaultHost="www.jevon1.com" jvmRoute="tcA"> \\定义默认host主机,且添加Route标识符区别集群中的各Tomcat节点 将以下内容或http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html中的Cluster配置放置到Engine或host区域即可,以下放置在了Engine区域 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8"> <Manager className="org.apache.catalina.ha.session.DeltaManager" \\使用Delta会话管理器
expireSessionsOnShutdown="false" \\永不过期
notifyListenersOnReplication="true"/> <Channel \\定义集群中的成员及通信 className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService" \\成员关系判定,使用多播地址通信
address="228.13.5.5" \\定义通信的多播地址,224-239网段
port="45564" \\发送多播信息的端口
frequency="500" \\发送信号的间隔
dropTime="3000"/> \\最长信号信号间隔超时时长
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" \\接收会话的机制,NioReceiver异步IO模式
address="172.16.253.108" \\定义接收信息的监听地址,可为auto自动识别接收IP地址
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"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" \\自动调用部署器部署集群
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> \\集群的监听器
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster> <Host name="www.jevon1.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="true" >
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="jevon_access_log" suffix=".log"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
[root@tomcatA ~]# cp /etc/tomcat/web.xml /data/webapps/ROOT/WEB-INF/
[root@tomcatA ~]# cd /data/webapps/ROOT/WEB-INF/
[root@tomcatA WEB-INF]# vim web.xml
在<web-app区域中添加<distributable/> 元素,如下
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<distributable/>
[root@tomcatA tomcat]# systemctl start tomcat

Tomcat B

[root@tomcatB ~]# yum -y install tomcat-lib tomcat tomcat-webapps tomcat-docs-webapp tomcat-admin-webapps \\tomcat-admin-webapps为tomcat管理应用程序包 tomcat-docs-webapp为tomcat的在线文档软件包
[root@tomcatB ~]# iptables -F
[root@tomcatB ~]# setenforce 0
[root@tomcatB ~]# ls /usr/share/tomcat/webapps/
docs examples host-manager manager ROOT sample
[root@tomcatB ~]# ls /var/lib/tomcat/webapps/
docs examples host-manager manager ROOT sample
[root@tomcatB ~]# mkdir -pv /usr/share/tomcat/webapps/test/{classes,lib,WEB-INF,META-INF}
[root@tomcatB ~]# vim /data/webapps/ROOT/index.jsp
<%@ page language="java" %> \\表示页面的编程语言
<%@ page import="java.util.*" %> \\导入的java类库
<html>
<head>
<title>Test Page</title> \\网页的标题
</head>
<body>
<% out.println("hello world");
%>
</body>
</html>
[root@TomcatB ~]# vim /etc/tomcat/server.xml
<Engine name="Catalina" defaultHost="www.jevon2.com" jvmRoute="tcB"> \\定义默认host主机,且添加Route标识符区别集群中的各Tomcat节点 将以下内容或http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html中的Cluster配置放置到Engine或host区域即可,以下放置在了Engine区域
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8"> <Manager className="org.apache.catalina.ha.session.DeltaManager" \\使用Delta会话管理器
expireSessionsOnShutdown="false" \\永不过期
notifyListenersOnReplication="true"/> <Channel \\定义集群中的成员及通信 className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService" \\成员关系判定,使用多播地址通信
address="228.13.5.5" \\定义通信的多播地址,224-239网段
port="45564" \\发送多播信息的端口
frequency="500" \\发送信号的间隔
dropTime="3000"/> \\最长信号信号间隔超时时长
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" \\接收会话的机制,NioReceiver异步IO模式
address="172.16.253.105" \\定义接收信息的监听地址,可为auto自动识别接收IP地址
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"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" \\自动调用部署器部署集群
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> \\集群的监听器
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster> <Host name="www.jevon2.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="true" >
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="jevon_access_log" suffix=".log"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
[root@tomcatB ~]# cp /etc/tomcat/web.xml /data/webapps/ROOT/WEB-INF/
[root@tomcatB ~]# cd /data/webapps/ROOT/WEB-INF/
[root@tomcatB WEB-INF]# vim web.xml
在<web-app区域中添加<distributable/> 元素,如下
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<distributable/>
[root@tomcatA tomcat]# systemctl start tomcat

Nginx代理

代理服务器

[root@danran ~]# vim /etc/nginx/nginx.conf
http {
upstream appsrvs {
server www.jevon1.com:8080;
server www.jevon2.com:8080;
}
server {
listen 80;
server_name www.danran.com;
index index.jsp index.html;
root /usr/share/nginx/html;
location / {
proxy_pass http://appsrvs/;
}
}
}
[root@danran ~]# systemctl start nginx

Tomcat session集群的更多相关文章

  1. Apache+Tomcat +mod_proxy集群负载均衡及session

      序言: 在玩Apache+Tomcat +mod_jk集群负载均衡及session的时候发现,还有一种方式可以实现,就是网上各位大牛们说的mod_proxy反向代理. 实在弄的我的知识细胞洋洋.实 ...

  2. Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享

    Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享 ============================= 蕃薯耀 2017年11月27日 http: ...

  3. tomcat redis 集群 session共享

    jcoleman/tomcat-redis-session-manager: Redis-backed non-sticky session store for Apache Tomcathttps: ...

  4. nginx+tomcat实现集群,redis实现session共享,软连接实现文件共享:http://blog.csdn.net/hua1586981/article/details/78132710

    转载 2017年02月08日 16:52:41 730 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能 ...

  5. FineReport如何部署Tomcat服务器集群

    环境准备 Tomcat服务器集群中需要进行环境准备: Apache:Apache是http服务器,利用其对Tomcat进行负载均衡,这里使用的版本是Apache HTTP Server2.0.64: ...

  6. 结合Apache和Tomcat实现集群和负载均衡 JK 方式 2 (转)

    本文Apache+Tomcat集群配置       基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apa ...

  7. Tomcat:基于Apache+Tomcat的集群搭建

    根据Tomcat的官方文档说明可以知道,使用Tomcat配置集群需要与其它Web Server配合使用才可以完成,典型的有Apache和IIS. 这里就使用Apache+Tomcat方式来完成基于To ...

  8. 结合Apache和Tomcat实现集群和负载均衡 JK 方式

    本文基本参考自 轻松实现Apache,Tomcat集群和负载均衡,经由实操经历记录而成,碰到些出入,以及个别地方依据个人的习惯,所以在一定程度上未能保持原文的完整性,还望原著者海涵. 因原文中有较多的 ...

  9. apache+tomcat分布式集群搭建

    今天搭建apche+tomcat分布式集群,遇到很多问题,在网上找到的很多都不成功,然后和同事一起研究了一下,最终搭建成功了.做个笔记,以备自己以后参考. 1,下载apache.在下载Apache(2 ...

随机推荐

  1. iOS字典转模型MJExtension使用

    如果项目是纯OC的建议使用,MJExtension是一套字典和模型之间互相转换的超轻量级框架,可以轻松完成: 字典(JSON) --> 模型(Model) 模型(Model) --> 字典 ...

  2. 【前端】react and redux教程学习实践,浅显易懂的实践学习方法。

    前言 前几天,我在博文[前端]一步一步使用webpack+react+scss脚手架重构项目 中搭建了一个react开发环境.然而在实际的开发过程中,或者是在对源码的理解中,感受到react中用的最多 ...

  3. Python爬虫初学(三)—— 模拟登录知乎

    模拟登录知乎 这几天在研究模拟登录, 以知乎 - 与世界分享你的知识.经验和见解为例.实现过程遇到不少疑问,借鉴了知乎xchaoinfo的代码,万分感激! 知乎登录分为邮箱登录和手机登录两种方式,通过 ...

  4. C++ STL 优先队列详解

    一.解释: 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序,每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储. 例如,将元 ...

  5. 设置双击直接打开.ipynb文件

    本文环境:win10(64)+anaconda3(64) anaconda3安装好后,可在开始菜单下查看 背景:jupyter notebook打开后无法更改路径,只能在默认路径下upload文件(如 ...

  6. ThinkPHP5.0相关

    1.tp5的下载安装 使用git克隆下面的仓库地址,这个地址下载的速度比较快,差不多两分钟的时间. 克隆tp5的应用项目: git clone https://github.com/top-think ...

  7. Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n = 3, a solution set is: "((()))", "(()())", "(())()", "()(())", "()()()"

    思路:采用递归的思想,当左括号数大于右括号数时可以加左或者右括号,否则只能加左括号,当左括号数达到n时,剩下全部.不过,每一个方法的调用都会产生一个栈帧,每执行一个方法就会出现压栈操作,所以采用递归的 ...

  8. Oracle数据库常用关键字以及函数

    常用关键字 insert into---插入数据 delete---删除数据 update---更新一条数据 select---实际工作中尽量不要写* set---设置某些属性 where---给执行 ...

  9. C#设计模式(2)-简单工厂模式

    引言 上一遍中介绍了设计模式中的单例模式-C#设计模式(1)-单例模式,本篇将介绍简单工厂模式,也是比较容易理解的一种模式: 简单工厂模式简介 什么是简单工厂模式? 定义一个工厂类,它可以根据参数的不 ...

  10. 在Eclipse下运行Jmeter3.0源代码

    1.创建项目 准备工作:在http://jmeter.apache.org/download_jmeter.cgi中分别下载binaries和source两个压缩包,前者为release版本,后者则为 ...