咱們須要準備兩臺虛擬機,把這兩臺虛擬機組成集羣,實現會話保持。
php
[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服務。html
[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>
[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>
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服務:java
[root@server1 WEB-INF]# catalina.sh stop [root@server1 WEB-INF]# catalina.sh start
接着,咱們就去修改第二臺機器。nginx
本臺機器和第一臺機器的設置類似,直接把文件拷過來就能夠了:web
[root@server1 ~]# scp /usr/local/tomcat/conf/server.xml root@192.168.37.122:~ root@192.168.37.122's password: server.xml 100% 8026 7.8KB/s 00:00 [root@server2 conf]# cp ~/server.xml . cp: overwrite ‘./server.xml’? yes
[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>
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服務:apache
[root@server2 WEB-INF]# catalina.sh stop [root@server2 WEB-INF]# catalina.sh start
咱們直接去網頁測試咱們的會話保持實現沒有:
能夠看出,咱們的會話保持已經實現。
實驗完成。vim