tomcat应用及tomcat+apache负载均衡,集群
2012-08-11 14:15
246 查看
一、实验前准备
1.所需软件
![](http://img1.51cto.com/attachment/201208/140457854.jpg)
2.需要用到的主机
node1:172.16.133.11
node2:172.16.133.12
rs1:172.16.133.1
二、tomcat+apache实战
1.tomcat安装及初步认识
Tomcat不是一个完整意义上的Jave EE服务器,它甚至都没有提供对哪怕是一个主要Java EE API的实现;但由于遵守apache开源协议,tomcat却又为众多的java应用程序服务器嵌入自己的产品中构建商业的java应用程序服务器,如JBoss和JOnAS。
尽管Tomcat对Jave EE API的实现并不完整,然而很企业也在渐渐抛弃使用传统的Java EE技术(如EJB)转而采用一些开源组件来构建复杂的应用。这些开源组件如Structs、Spring和Hibernate,而Tomcat能够对这些组件实现完美的支持。
(1).tomcat的初次使用
node1:先安装jdk
rpm -ivh jdk-7u5-linux-i586.rpm
修改环境变量
![](http://img1.51cto.com/attachment/201208/140542404.jpg)
可以查看到,我们当前系统的内核,还有jdk的版本,tomcat的安装路径,tomcat的实例路径等
./catalina.sh configtest检查一下配置文件
./catalina.sh start启动tomcat
从ie中访问http://172.16.133.11:8080,可以进入系统自带的首页
![](http://img1.51cto.com/attachment/201208/140600558.jpg)
(2).tomcat的第一个小实例
下面我们自己做个简单的jsp页面进行测试
然后在ie中访问http://172.16.133.11:8080/test
![](http://img1.51cto.com/attachment/201208/140618905.jpg)
2.tomcat深入
(1).tomcat路径别名使用
tomcat的配置文件server.xml在/usr/local/tomcat/conf中
他的Context组件提供该功能
在host标签中,加入一行,注意不要加到注释行里面了(<!-- -->这样的是注释行)
(2).tomcat虚拟主机的使用
tomcat的host组件,在server.xml中的host标签
这里我们实验在系统自带的host标签前,新定义一个host标签
然后就可以在网页中访问http://qinqin.magedu.com:8080
![](http://img1.51cto.com/attachment/201208/140801824.jpg)
(3).tomcat的管理界面
①.manager
在tomcat的主页http://172.16.133.11:8080中,点击 Manager App按钮,会提示输入帐号,密码,然后点击取消
然后在弹出的错误页面中,我们可以看到,manager的详细设置,和所可以使用的角色都是哪些,分别代表着什么
![](http://img1.51cto.com/attachment/201208/140825141.jpg)
要定义在tomcat-users.xml中的<tomcat-users>标签中
重新返回到主页面,点击Manager App页面,输入帐号tomcat,密码tomcat,即可进入,可以看到,里面有我们刚定义的test页面
![](http://img1.51cto.com/attachment/201208/140912685.jpg)
![](http://img1.51cto.com/attachment/201208/140928503.jpg)
②.host-manager
在tomcat的主页http://172.16.133.11:8080中,点击 Host Manager按钮,会提示输入帐号,密码,然后点击取消
![](http://img1.51cto.com/attachment/201208/140943311.jpg)
然后在弹出的错误页面中,我们可以看到,host-manager的详细设置,和所可以使用的角色都是哪些,分别代表着什么
重新返回到主页面,点击Host Manager输入帐号密码,即可进入,这里host-manager和manager的帐号名不能一样
![](http://img1.51cto.com/attachment/201208/141020576.jpg)
可以看到我们刚才添加的虚拟主机qinqin.magedu.com,也可以从这个web页面添加新的
3.tomcat+apache
apache的安装请见:http://5142926.blog.51cto.com/5132926/921873
不过这里要注意的是,在编译安装httpd时,./configure要在后面添加这几项--enable-proxy --enable-proxy-http --enable-proxy-ajp
即:
配置apache加载相应的模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
(1).反向代理
node1:
注释掉/etc/httpd/httpd.conf中的DocumentRoot
启动虚拟主机
Include /etc/httpd/extra/httpd-vhosts.conf
①.基于proxy-http
在网页中打开http://172.16.133.11/test
![](http://img1.51cto.com/attachment/201208/141112472.jpg)
②.基于基于proxy-ajp
然后为了防止浏览器缓存,换个浏览器打开http://172.16.133.11/test
![](http://img1.51cto.com/attachment/201208/141141786.jpg)
(2).负载均衡
node2:配置同node1
修改node2中test的index.jsp的内容为
node1:修改node1中test的index.jsp的内容为
①基于mod_proxy
为了以后方便基于mod_proxy和基于mod_jk的切换,这里我们写到虚拟主机的配置文件中
开启Include /etc/httpd/extra/httpd-vhosts.conf
并注释掉DocumentRoot
修改vhost配置文件
![](http://img1.51cto.com/attachment/201208/141429600.jpg)
![](http://img1.51cto.com/attachment/201208/141440579.jpg)
②基于mod_jk
配置apache通过mod_jk模块与Tomcat连接
apache要使用mod_jk连接器,需要在启动时加载此连接器模块。为了便于管理与mod_jk模块相关的配置,这里使用一个专门的配置文件/etc/httpd/extra/httpd-jk.conf来保存相关指令及其设置。其内容如下:
然后在/etc/httpd/httpd.conf中添加(为了方便,最好添加在Include /etc/httpd/extra/httpd-vhosts.conf下面)
Include /etc/httpd/extra/httpd-jk.conf
对于apache代理来说,每一个后端的Tomcat实例中的engine都可以视作一个worker,而每一个worker的地址、连接器的端口等信息都需要在apache端指定以便apache可以识别并使用这些worker。约定俗成,配置这些信息的文件通常为workers.properties,其具体路径则是使用前面介绍过的JkWorkersFile指定的,在apache启动时,mod_jk会扫描此文件获取每一个worker的配置信息。比如,我们这里使用/etc/httpd/extra/workers.properties。
workers.properties文件一般由两类指令组成:一是mod_jk可以连接的各worker名称列表,二是每一个worker的属性配置信息。它们分别遵循如下使用语法。
worker.list = < a comma separated list of worker names >
worker. <worker name> .<property> = <property value>
其中worker.list指令可以重复指定多次,而worker name则是Tomcat中engine组件jvmRoute参数的值。如:
worker.TomcatA.host=172.16.133.1
编辑/etc/httpd/extra/workers.properties,添加如下内容:
在tomcat的主配置文件中的Engine标签中添加
<Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatA">
node2:
在tomcat的主配置文件中的Engine标签中添加
<Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatB">
然后在网页中打开http://qinqin.magedu.com/status
![](http://img1.51cto.com/attachment/201208/141311131.jpg)
看以查看到两台节点
然后,我们关掉node2的tomcat在看
![](http://img1.51cto.com/attachment/201208/141333114.jpg)
(3)集群
node1:
在tomcat的主配置文件server.xml中<Engine>标签后添加如下内容
同理node2
node1:
然后要注释掉/etc/httpd/httpd.conf中的vhost跟jk,添加一条
重启httpd和tomcat,打开网页访问http://172.16.133.11
![](http://img1.51cto.com/attachment/201208/120145826.jpg)
![](http://img1.51cto.com/attachment/201208/120154405.jpg)
可以看到session id是不变的,另外我在proxy.conf中还添加了lbmanager,可以提供对集群的管理
![](http://img1.51cto.com/attachment/201208/120245105.jpg)
(4).持续会话
①.标准会话管理器(StandardManager)
<Manager className="org.apache.catalina.session.StandardManager" maxInactiveInterval="7200"/>
默认保存于$CATALINA_HOME/work/Catalina/<hostname>/<webapp-name>/下的SESSIONS.ser文件中。
maxActiveSessions:最多允许的活动会话数量,默认为-1,表示不限制;
maxInactiveInterval:非活动的会话超时时长,默认为60s;
pathname:会话文件的保存目录;
②.持久会话管理器(PersistentManager)
将会话数据保存至持久存储中,并且能在服务器意外中止后重新启动时重新加载这些会话信息。持久会话管理器支持将会话保存至文件存储(FileStore)或JDBC存储(JDBCStore)中。
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="true">
<Store className="org.apache.catalina.session.FileStore"
directory="/data/tomcat-sessions"/>
</Manager>
每个用户的会话会被保存至directory指定的目录中的文件中,文件名为<session id>.session,并通过后台线程每隔一段时间(checkInterval参数定义,默认为60秒)检查一次超时会话。
本文出自 “周钰钦” 博客,请务必保留此出处http://zhouyuqin.blog.51cto.com/5132926/960900
1.所需软件
![](http://img1.51cto.com/attachment/201208/140457854.jpg)
2.需要用到的主机
node1:172.16.133.11
node2:172.16.133.12
rs1:172.16.133.1
二、tomcat+apache实战
1.tomcat安装及初步认识
Tomcat不是一个完整意义上的Jave EE服务器,它甚至都没有提供对哪怕是一个主要Java EE API的实现;但由于遵守apache开源协议,tomcat却又为众多的java应用程序服务器嵌入自己的产品中构建商业的java应用程序服务器,如JBoss和JOnAS。
尽管Tomcat对Jave EE API的实现并不完整,然而很企业也在渐渐抛弃使用传统的Java EE技术(如EJB)转而采用一些开源组件来构建复杂的应用。这些开源组件如Structs、Spring和Hibernate,而Tomcat能够对这些组件实现完美的支持。
(1).tomcat的初次使用
node1:先安装jdk
rpm -ivh jdk-7u5-linux-i586.rpm
修改环境变量
vim /etc/profile JAVA_HOME=/usr/java/jdk1.7.0_05 PATH=$JAVA_HOME:$PATH export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC tar xf apache-tomcat-7.0.29.tar.gz -C /usr/local cd /usr/local ln -sv apache-tomcat-7.0.29/ tomcat cd tomcat/bin ./version.sh
![](http://img1.51cto.com/attachment/201208/140542404.jpg)
可以查看到,我们当前系统的内核,还有jdk的版本,tomcat的安装路径,tomcat的实例路径等
./catalina.sh configtest检查一下配置文件
./catalina.sh start启动tomcat
从ie中访问http://172.16.133.11:8080,可以进入系统自带的首页
![](http://img1.51cto.com/attachment/201208/140600558.jpg)
(2).tomcat的第一个小实例
下面我们自己做个简单的jsp页面进行测试
cd mkdir test cd test/ mkdir -pv WEB-INF/{lib,classes} vim index.jsp <%@ page language="java" %> <html> <head> <title>tomcatqinqin</title> </head> <body> <h2><font color="red">tomcat in www.qinqin.com</font></h2> <% out.println("hello world!"); %> </body> </html> cd cp -r test/ /usr/local/tomcat/webapps/ /usr/local/tomcat/bin/catalina.sh stop /usr/local/tomcat/bin/catalina.sh configtest /usr/local/tomcat/bin/catalina.sh start
然后在ie中访问http://172.16.133.11:8080/test
![](http://img1.51cto.com/attachment/201208/140618905.jpg)
2.tomcat深入
(1).tomcat路径别名使用
tomcat的配置文件server.xml在/usr/local/tomcat/conf中
他的Context组件提供该功能
mkdir /www/webapps -pv mv /usr/local/tomcat/webapps/test/ /www/webapps/ vim /usr/local/tomcat/conf/server.xml
在host标签中,加入一行,注意不要加到注释行里面了(<!-- -->这样的是注释行)
<Context path="/test" docBase="/www/webapps/test" reloadable="true" /> /usr/local/tomcat/bin/catalina.sh stop /usr/local/tomcat/bin/catalina.sh configtest /usr/local/tomcat/bin/catalina.sh start
(2).tomcat虚拟主机的使用
tomcat的host组件,在server.xml中的host标签
这里我们实验在系统自带的host标签前,新定义一个host标签
vim /usr/local/tomcat/conf/server.xml <Host name="qinqin.magedu.com" appBase="/www/webapps/jcenter" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/www/webapps/test" reloadable="true" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="test_access_log." suffix=".log" pattern="%h %l %u %t "%r" %s %b" /> </Host> /usr/local/tomcat/bin/catalina.sh stop /usr/local/tomcat/bin/catalina.sh configtest /usr/local/tomcat/bin/catalina.sh start
然后就可以在网页中访问http://qinqin.magedu.com:8080
![](http://img1.51cto.com/attachment/201208/140801824.jpg)
(3).tomcat的管理界面
①.manager
在tomcat的主页http://172.16.133.11:8080中,点击 Manager App按钮,会提示输入帐号,密码,然后点击取消
然后在弹出的错误页面中,我们可以看到,manager的详细设置,和所可以使用的角色都是哪些,分别代表着什么
![](http://img1.51cto.com/attachment/201208/140825141.jpg)
要定义在tomcat-users.xml中的<tomcat-users>标签中
vim /usr/local/tomcat/conf/tomcat-users.xml <role rolename="manager-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui" /> /usr/local/tomcat/bin/catalina.sh stop /usr/local/tomcat/bin/catalina.sh configtest /usr/local/tomcat/bin/catalina.sh start
重新返回到主页面,点击Manager App页面,输入帐号tomcat,密码tomcat,即可进入,可以看到,里面有我们刚定义的test页面
![](http://img1.51cto.com/attachment/201208/140912685.jpg)
![](http://img1.51cto.com/attachment/201208/140928503.jpg)
②.host-manager
在tomcat的主页http://172.16.133.11:8080中,点击 Host Manager按钮,会提示输入帐号,密码,然后点击取消
![](http://img1.51cto.com/attachment/201208/140943311.jpg)
然后在弹出的错误页面中,我们可以看到,host-manager的详细设置,和所可以使用的角色都是哪些,分别代表着什么
vim /usr/local/tomcat/conf/tomcat-users.xml <role rolename="admin-gui"/> <user username="redhat" password="redhat" roles="admin-gui" /> /usr/local/tomcat/bin/catalina.sh stop /usr/local/tomcat/bin/catalina.sh configtest /usr/local/tomcat/bin/catalina.sh start
重新返回到主页面,点击Host Manager输入帐号密码,即可进入,这里host-manager和manager的帐号名不能一样
![](http://img1.51cto.com/attachment/201208/141020576.jpg)
可以看到我们刚才添加的虚拟主机qinqin.magedu.com,也可以从这个web页面添加新的
3.tomcat+apache
apache的安装请见:http://5142926.blog.51cto.com/5132926/921873
不过这里要注意的是,在编译安装httpd时,./configure要在后面添加这几项--enable-proxy --enable-proxy-http --enable-proxy-ajp
即:
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-proxy --enable-proxy-http --enable-proxy-ajp
配置apache加载相应的模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
(1).反向代理
node1:
注释掉/etc/httpd/httpd.conf中的DocumentRoot
启动虚拟主机
Include /etc/httpd/extra/httpd-vhosts.conf
①.基于proxy-http
<VirtualHost *:80> ProxyPass /test http://172.16.133.11:8080/test ProxyPassReverse /test http://172.16.133.11:8080/test ProxyVia On </VirtualHost>
在网页中打开http://172.16.133.11/test
![](http://img1.51cto.com/attachment/201208/141112472.jpg)
②.基于基于proxy-ajp
<VirtualHost *:80> ProxyPass /test ajp://172.16.133.11:8009/test ProxyPassReverse /test ajp://172.16.133.11:8009/test ProxyVia On </VirtualHost>
然后为了防止浏览器缓存,换个浏览器打开http://172.16.133.11/test
![](http://img1.51cto.com/attachment/201208/141141786.jpg)
(2).负载均衡
node2:配置同node1
修改node2中test的index.jsp的内容为
<%@ page language="java" %> <html> <head> <title>tomcatb</title> </head> <body> <h2><font color="red">tomcat in www.magedu.com</font></h2> <% out.println("hello world!"); %> <table align="centre" border="1"> <tr> <td>Session ID</td> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html>
node1:修改node1中test的index.jsp的内容为
<%@ page language="java" %> <html> <head> <title>tomcata</title> </head> <body> <h2><font color="red">tomcat in www.magedu.com</font></h2> <% out.println("hello world!"); %> <table align="centre" border="1"> <tr> <td>Session ID</td> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html>
①基于mod_proxy
为了以后方便基于mod_proxy和基于mod_jk的切换,这里我们写到虚拟主机的配置文件中
开启Include /etc/httpd/extra/httpd-vhosts.conf
并注释掉DocumentRoot
修改vhost配置文件
vim /etc/httpd/extra/httpd-vhosts.conf ProxyRequests Off <proxy balancer://lbcluster1> BalancerMember ajp://172.16.133.11:8009 loadfactor=1 route=TomcatA BalancerMember ajp://172.16.133.12:8009 loadfactor=1 route=TomcatB </proxy> ServerAdmin admin@magedu.com ServerName qinqin.magedu.com ProxyPass / balancer://lbcluster1/ stickysession=jsessionid ProxyPassReverse / balancer://lbcluster1/
![](http://img1.51cto.com/attachment/201208/141429600.jpg)
![](http://img1.51cto.com/attachment/201208/141440579.jpg)
②基于mod_jk
配置apache通过mod_jk模块与Tomcat连接
tar xf tomcat-connectors-1.2.37-src.tar.gz cd tomcat-connectors-1.2.37-src/native/ ./configure --with-apxs=/usr/local/apache/bin/apxs make && make install
apache要使用mod_jk连接器,需要在启动时加载此连接器模块。为了便于管理与mod_jk模块相关的配置,这里使用一个专门的配置文件/etc/httpd/extra/httpd-jk.conf来保存相关指令及其设置。其内容如下:
vim /etc/httpd/extra/httpd-jk.conf LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/extra/workers.properties JkLogFile logs/mod_jk.log JkLogLevel debug JkMount /* TomcatA JkMount /status/ stat1
然后在/etc/httpd/httpd.conf中添加(为了方便,最好添加在Include /etc/httpd/extra/httpd-vhosts.conf下面)
Include /etc/httpd/extra/httpd-jk.conf
对于apache代理来说,每一个后端的Tomcat实例中的engine都可以视作一个worker,而每一个worker的地址、连接器的端口等信息都需要在apache端指定以便apache可以识别并使用这些worker。约定俗成,配置这些信息的文件通常为workers.properties,其具体路径则是使用前面介绍过的JkWorkersFile指定的,在apache启动时,mod_jk会扫描此文件获取每一个worker的配置信息。比如,我们这里使用/etc/httpd/extra/workers.properties。
workers.properties文件一般由两类指令组成:一是mod_jk可以连接的各worker名称列表,二是每一个worker的属性配置信息。它们分别遵循如下使用语法。
worker.list = < a comma separated list of worker names >
worker. <worker name> .<property> = <property value>
其中worker.list指令可以重复指定多次,而worker name则是Tomcat中engine组件jvmRoute参数的值。如:
worker.TomcatA.host=172.16.133.1
编辑/etc/httpd/extra/workers.properties,添加如下内容:
worker.list = lbcluster1,stat1 worker.TomcatA.type = ajp13 worker.TomcatA.host = 172.16.133.11 worker.TomcatA.port = 8009 worker.TomcatA.lbfactor = 5 worker.TomcatB.type = ajp13 worker.TomcatB.host = 172.16.133.12 worker.TomcatB.port = 8009 worker.TomcatB.lbfactor = 5 worker. lbcluster1.type = lb worker. lbcluster1.sticky_session = 1 worker. lbcluster1.balance_workers = TomcatA, TomcatB worker.stat1.type = status
在tomcat的主配置文件中的Engine标签中添加
<Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatA">
node2:
在tomcat的主配置文件中的Engine标签中添加
<Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatB">
然后在网页中打开http://qinqin.magedu.com/status
![](http://img1.51cto.com/attachment/201208/141311131.jpg)
看以查看到两台节点
然后,我们关掉node2的tomcat在看
![](http://img1.51cto.com/attachment/201208/141333114.jpg)
(3)集群
node1:
在tomcat的主配置文件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.50.10.1" bind="172.16.133.11" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="172.16.133.11" 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=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/> <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>
同理node2
node1:
然后要注释掉/etc/httpd/httpd.conf中的vhost跟jk,添加一条
Include /etc/httpd/extra/httpd-proxy.conf vim /etc/httpd/extra/httpd-proxy.conf ProxyRequests Off <proxy balancer://lbcluster1> BalancerMember ajp://172.16.133.11:8009 loadfactor=10 route=TomcatA BalancerMember ajp://172.16.133.12:8009 loadfactor=10 route=TomcatB ProxySet lbmethod=bytraffic </proxy> # ProxyPass / balancer://lbcluster1/ stickysession=jsessionid ProxyPass /lbmanager ! ProxyPass /status ! ProxyPass / balancer://lbcluster1/ ProxyPassReverse / balancer://lbcluster1/ ProxyStatus full <Location /lbmanager> SetHandler balancer-manager Require all granted </Location> <Location /status> SetHandler server-status Require all granted </Location>
重启httpd和tomcat,打开网页访问http://172.16.133.11
![](http://img1.51cto.com/attachment/201208/120145826.jpg)
![](http://img1.51cto.com/attachment/201208/120154405.jpg)
可以看到session id是不变的,另外我在proxy.conf中还添加了lbmanager,可以提供对集群的管理
![](http://img1.51cto.com/attachment/201208/120245105.jpg)
(4).持续会话
①.标准会话管理器(StandardManager)
<Manager className="org.apache.catalina.session.StandardManager" maxInactiveInterval="7200"/>
默认保存于$CATALINA_HOME/work/Catalina/<hostname>/<webapp-name>/下的SESSIONS.ser文件中。
maxActiveSessions:最多允许的活动会话数量,默认为-1,表示不限制;
maxInactiveInterval:非活动的会话超时时长,默认为60s;
pathname:会话文件的保存目录;
②.持久会话管理器(PersistentManager)
将会话数据保存至持久存储中,并且能在服务器意外中止后重新启动时重新加载这些会话信息。持久会话管理器支持将会话保存至文件存储(FileStore)或JDBC存储(JDBCStore)中。
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="true">
<Store className="org.apache.catalina.session.FileStore"
directory="/data/tomcat-sessions"/>
</Manager>
每个用户的会话会被保存至directory指定的目录中的文件中,文件名为<session id>.session,并通过后台线程每隔一段时间(checkInterval参数定义,默认为60秒)检查一次超时会话。
本文出自 “周钰钦” 博客,请务必保留此出处http://zhouyuqin.blog.51cto.com/5132926/960900
相关文章推荐
- CentOS系统下Apache负载均衡、Tomcat集群以及项目热部署配置
- Apache+Tomcat实现负载均衡及集群(session同步)--四、负载均衡(2)使用mod_proxy
- 结合Apache和Tomcat实现集群和负载均衡
- Apache+Tomcat构建Tomcat负载均衡集群
- Apache与Tomcat集群和负载均衡配置
- apache+tomcat 负载均衡、集群配置经过
- 用apache和tomcat搭建集群(负载均衡)
- 轻松实现Apache,Tomcat集群和负载均衡
- Apache和Tomcat实现集成、动静态资源分离、集群和负载均衡
- 基于Apache的Tomcat负载均衡和集群
- 负载均衡与集群之apache+tomcat
- 结合Apache和Tomcat实现集群和负载均衡
- Apache反向代理结合Tomcat集群来实现负载均衡(三)、tomcat集群
- 基于apache的tomcat负载均衡和集群配置(基于mod_jk.so)
- 负载均衡与集群之apache+tomcat
- Apache 负载均衡+Tomcat集群
- 结合Apache和Tomcat实现集群和负载均衡
- 基于Apache的Tomcat负载均衡和集群
- 基于apache的tomcat负载均衡和集群配置
- Windows下整合Apache2.2和Tomcat6.0 集群与负载均衡