Nginx+Tomcat会话集群会话保持实验
实验要求:
1.nginx+tomcat负载平衡
2.会话维护
实验拓扑
ip网络规划
Nginxnode2
汤姆卡塔诺3
tomcatBnode4:172.16.76.40
基本配置
节点2:
[root@node2~]#yuminstallnginx–y
节点3:
[root@node3~]# yum install tomcat –y [root@node3~]# cd /var/lib/tomcat/webapps/ [root@node3 webapps]# mkdir -pv test/{claess,lib,WEB-INF [root@node3 webapps]#vim test/index.jsp <%@ page language="java" %> <html> <head><title>TomcatA</title></head> <body> <h1><font color="red">TomcatA.linuxinfo.top</font></h1> <tablealign="centre" border="1"> <tr> <td>SessionID</td> <% session.setAttribute("linuxinfo.top","linuxinfo.top");%> <td><%=session.getId() %></td> </tr> <tr> <td>Createdon</td> <td><%=session.getCreationTime() %></td> </tr> </table> </body> </html> [root@node3 ~]# systemctl restart tomcat节点4:
[root@node4~]# yum install tomcat –y [root@node4~]# cd /var/lib/tomcat/webapps/ [root@node4 webapps]# mkdir -pv test/{claess,lib,WEB-INF [root@node4 webapps]#vim test/index.jsp <%@ page language="java" %> <html> <head><title>TomcatB</title></head> <body> <h1><font color="blue">TomcatA.linuxinfo.top</font></h1> <tablealign="centre" border="1"> <tr> <td>SessionID</td> <% session.setAttribute("linuxinfo.top","linuxinfo.top");%> <td><%=session.getId() %></td> </tr> <tr> <td>Createdon</td> <td><%=session.getCreationTime() %></td> </tr> </table> </body> </html> [root@node4 ~]# systemctl restart tomcatNginx配置
节点2
[root@node2~]# vim /etc/nginx/nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status$body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; upstream tomcatser { #服务器组 配置负载均衡 server 172.16.76.30:8080; server 172.16.76.40:8080; # ip_hash } access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include/etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configurationfiles for the default server block. include/etc/nginx/default.d/*.conf; #location 代理至后端服务器组;负载均衡 location / { proxy_pass http://tomcatser; location ~* (\.jsp|do)${ proxy_passhttp://tomcatser; } } error_page 404 /404.html; location =/40x.html { } error_page 500 502 503504 /50x.html; location =/50x.html { } } [root@node2 ~]# systemctl restart nginxtomcat配置
汤姆卡塔:
1.配置tomcat会话集群
[root@node3 ~]# vim /etc/tomcat/server.xml 配置启用集群,将下列配置放置于<engine>或<host>中; <Enginename="Catalina" defaultHost="localhost"jvmRoute="TomcatA"> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> <ManagerclassName="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> <ChannelclassName="org.apache.catalina.tribes.group.GroupChannel"> <MembershipclassName="org.apache.catalina.tribes.membership.McastService" address="228.0.76.4"#组播地址;可自行定义 port="45564" frequency="500" dropTime="3000"/> <ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver" address="172.16.76.30" #服务器ip地址;可仅修改此一处 port="4000" autoBind="100" selectorTimeout="5000" maxThreads="6"/> <SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> </Channel> <ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <DeployerclassName="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> <ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>2.at
<enginename="Catalina"defaulthost="localhost"JVMroute="Tomcata">;
#tomcatB主机会将其修改为tomcatB。
3.编辑WEB-INF/web.xml并添加
[root@node3~]#CD/var/lib/Tomcat/WEBapps/test/web-INF/
[root@node3WEB-INF]#ls
web.xml
[root@node3web-INF]#CP/etc/Tomcat/WEB.XML。
[root@node3WEB-INF]#vimweb.xml
节点4:
1.将node3tomcat配置文件server.xml复制到本地计算机;
[root@node4~]#cd/etc/tomcat/
[root@node4Tomcat]#scp172.16.76.30:/etc/Tomcat/server.XML。
2.注意:修改<引擎>JvmRoute=TomcatB在;
3.编辑WEB-INF/web.xml并添加
[root@node3~]#CD/var/lib/Tomcat/WEBapps/test/web-INF/
[root@node3WEB-INF]#ls
web.xml
[root@node3web-INF]#CP/etc/Tomcat/WEB.XML。
[root@node3WEB-INF]#vimweb.xm
重新启动所有服务
[root@node2~]#systemctl重启nginx
[root@node3~]#systemctl重新启动tomcat
[root@node4~]#systemctl重新启动tomcat
测试
至此,实验完成;访问172.16.76.20/test/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)