Nginx+tomcat session cluster会话保持实验



实验要求:

1nginx+tomcat 负载均衡

2、会话保持

 

实验拓扑

Nginx+tomcat session cluster会话保持实验_第1张图片

         ip网络规划

         Nginxnode2:172.16.76.20

         tomcatAnode3:172.16.76.30

         tomcatBnode4:172.16.76.40

 

基础配置

         node2:

                   [root@node2~]# yum install nginx –y

         node3:    

[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" %>
  
     TomcatA
   
    

TomcatA.linuxinfo.top

           SessionID     <% session.setAttribute("linuxinfo.top","linuxinfo.top");%>    <%=session.getId() %>                   Createdon        <%=session.getCreationTime() %>                   [root@node3 ~]# systemctl restart tomcat


Nginx+tomcat session cluster会话保持实验_第2张图片

         node4:           

[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" %>
  
     TomcatB
    

TomcatA.linuxinfo.top

              SessionID     <% session.setAttribute("linuxinfo.top","linuxinfo.top");%>          <%=session.getId() %>                              Createdon          <%=session.getCreationTime() %>                       [root@node4 ~]# systemctl restart tomcat

                   

Nginx+tomcat session cluster会话保持实验_第3张图片

      

Nginx配置      

   node2

[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 nginx


 

tomcat配置

         tomcatA:

        1、配置tomcat session cluster

[root@node3 ~]# vim /etc/tomcat/server.xml
配置启用集群,将下列配置放置于中;
         

 
 
   
   
 

 
 
    
    
 
 
 
 
 
 

                           

2 中添加 jvmRoute="TomcatA"

          

         #tomcatB主机 则将此修改为tomcatB

3、编辑WEB-INF/web.xml,添加元素

         [root@node3~]# cd /var/lib/tomcat/webapps/test/WEB-INF/

[root@node3 WEB-INF]# ls

web.xml

[root@node3 WEB-INF]# cp /etc/tomcat/web.xml  .

[root@node3 WEB-INF]# vim web.xml

wKioL1igck3zfaO5AAAftbIDuvE150.jpg


 

 

node4

1  node3 tomcat配置文件server.xml拷贝一份至本机;

         [root@node4~]# cd /etc/tomcat/

[root@node4tomcat]# scp 172.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@node3 WEB-INF]# ls

 web.xml

[root@node3 WEB-INF]# cp /etc/tomcat/web.xml  .

[root@node3 WEB-INF]# vim web.xm

wKiom1igcmTzYpbcAAAftbIDuvE739.jpg

 

 

重启所有服务

         [root@node2~]# systemctl restart nginx

         [root@node3~]# systemctl restart tomcat

         [root@node4~]# systemctl restart tomcat

  

测试

         Nginx+tomcat session cluster会话保持实验_第4张图片

至此实验完成;访问172.16.76.20/test/实现nginx负载均衡同时保持会话;