實現基於tomcat集群會話保持
阿新 • • 發佈:2017-11-26
ice dispatch code receiver tribes 技術分享 () sts con 2.4 修改
3.3 修改
1、實驗環境
我們需要準備兩臺虛擬機,把這兩臺虛擬機組成集群,實現會話保持。
2、配置server1
2.1 修改nginx配置文件
[root@server1 ~]# vim /etc/nginx/nginx.conf upstream tomcat_cluser { #ip_hash; server 192.168.37.111:8080 weight=1; server 192.168.27.122:8080 weight=2; } location / { #index index.php index.html index.htm; proxy_pass http://tomcat_cluser; } location ~* \.(jsp|do)$ { proxy_pass http://tomcat_cluser; }
修改完成之後,重啟我們的nginx服務。
2.2 修改tomcat配置文件
[root@server1 ~]# vim server.xml <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.3 創建一個session頁面
[root@server1 webapps]# mkdir test [root@server1 webapps]# vim test/session.jsp <%@ page language="java" %> <html> <head><title>TomcatA</title></head> <body> <h1><font color="blue">TomcatA</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>
2.4 修改web.xml
[root@server1 webapps]# cd test/
[root@server1 test]# ls
session.jsp
[root@server1 test]# mkdir WEB-INF/
[root@server1 test]# cp /usr/local/tomcat/conf/web.xml WEB-INF/
[root@server1 test]# cd WEB-INF/
[root@server1 WEB-INF]# ls
web.xml
[root@server1 WEB-INF]# vim web.xml
在web.xml下 在</web-app>
上方加入<distributable/>
設置一個標簽
修改完成之後,重啟我們的tomcat服務:
[root@server1 WEB-INF]# catalina.sh stop
[root@server1 WEB-INF]# catalina.sh start
接著,我們就去修改第二臺機器。
三、配置server2
3.1 修改tomcat配置文件
本臺機器和第一臺機器的設置相似,直接把文件拷過來就可以了:
[root@server1 ~]# scp /usr/local/tomcat/conf/server.xml [email protected]:~
[email protected]'s password:
server.xml 100% 8026 7.8KB/s 00:00
[root@server2 conf]# cp ~/server.xml .
cp: overwrite ‘./server.xml’? yes
3.2 創建一個session頁面
[root@server2 webapps]# mkdir test
[root@server2 webapps]# vim test/session.jsp
<%@ 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.3 修改web.xml
[root@server2 webapps]# cd test/
[root@server2 test]# ls
session.jsp
[root@server2 test]# mkdir WEB-INF/
[root@server2 test]# cp /usr/local/tomcat/conf/web.xml WEB-INF/
[root@server2 test]# cd WEB-INF/
[root@server2 WEB-INF]# ls
web.xml
[root@server2 WEB-INF]# vim web.xml
在web.xml下 在</web-app>
上方加入<distributable/>
設置一個標簽
修改完成之後,重啟我們的tomcat服務:
[root@server2 WEB-INF]# catalina.sh stop
[root@server2 WEB-INF]# catalina.sh start
四、測試
我們直接去網頁測試我們的會話保持實現沒有:
可以看出,我們的會話保持已經實現。
實驗完成。
實現基於tomcat集群會話保持