实现tomcat基于session会话保持
2017-11-26 14:51
851 查看
实验环境:
两台服务器,分别实现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>
注意:该配置文件中的地址,写auto虽然也会自己绑定本机地址,但是有时会出错,最好手动写上本机地址
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是不变的。
两台服务器,分别实现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>
注意:该配置文件中的地址,写auto虽然也会自己绑定本机地址,但是有时会出错,最好手动写上本机地址
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是不变的。
相关文章推荐
- Tomcat(三) Tomcat安装配置: Tomcat+Nginx+keepalived 实现动静分离、Session会话保持的高可用集群
- tomcat cluster和tomcat+memcached实现Session会话保持
- tomcat原理及安装及反向代理、会话保持、session集群和session共享服务器的实现(一)
- 基于Tomcat构建LNMT架构的网站并实现Session保持 推荐
- Tomcat/Memcached实现会话保持(SessionServer)
- tomcat基于session会话保持以及msm会话保持
- 为什么要使用tomcat+memcache实现session共享而不使用会话保持
- 实现基于tomcat集群会话保持
- Tomcat(三) Tomcat安装配置:Tomcat+Nginx+keepalived 实现动静分离、Session会话保持的高可用集群
- 基于Tomcat构建LNMT架构的网站并实现Session保持
- Linux高可用(HA)之Nginx+Redis+Tomcat集群实现session保持和共享
- Nginx反向代理实现会话(session)保持的两种方式
- 基于tomcat集群会话保持(DeltaManager)
- Nginx反向代理实现会话(session)保持的两种方式
- 基于apache对tomcat做负载均衡与DeltaManager(会话保持)的使用
- Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持 推荐
- .net iis 7 基于session的会话长时间保持不退出登录
- 图文并茂超详细搭建redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)
- redis缓存服务器(Nginx+Tomcat+redis+MySQL实现session会话共享) 推荐
- tomcat session server基于memcached的实现