Nginx+tomcat session cluster会话保持实验

Nginx+tomcat session cluster会话保持实验



实验要求:

1、nginx+tomcat 负载均衡

2、会话保持

实验拓扑

ip网络规划

Nginxnode2:172.16.76.20

tomcatAnode3:172.16.76.30

tomcatBnode4:172.16.76.40

基础配置

node2:

[[email protected]~]# yum install nginx –y

   node3:    

[[email protected]~]# yum install tomcat –y
[[email protected]~]# cd /var/lib/tomcat/webapps/
[[email protected] webapps]# mkdir -pv test/{claess,lib,WEB-INF
[[email protected] 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>
[[email protected] ~]# systemctl restart tomcat

node4:

[[email protected]~]# yum install tomcat –y
[[email protected]~]# cd /var/lib/tomcat/webapps/
[[email protected] webapps]# mkdir -pv test/{claess,lib,WEB-INF
[[email protected] 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>
[[email protected] ~]# systemctl restart tomcat

Nginx配置

node2

[[email protected]~]# 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 {
        }
}
[[email protected] ~]# systemctl restart nginx

tomcat配置

tomcatA:

1、配置tomcat session cluster

[[email protected] ~]# 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、 在<Engine name="Catalina"defaultHost="localhost"> 中添加 jvmRoute="TomcatA"即

<Enginename="Catalina" defaultHost="localhost" jvmRoute="TomcatA">

#tomcatB主机 则将此修改为tomcatB

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

[[email protected]~]# cd /var/lib/tomcat/webapps/test/WEB-INF/

[[email protected] WEB-INF]# ls

web.xml

[[email protected] WEB-INF]# cp /etc/tomcat/web.xml  .

[[email protected] WEB-INF]# vim web.xml

node4:

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

[[email protected]~]# cd /etc/tomcat/

[[email protected]]# scp 172.16.76.30:/etc/tomcat/server.xml .

2、注:修改 <Engine> 中jvmRoute=TomcatB;

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

[[email protected]~]# cd /var/lib/tomcat/webapps/test/WEB-INF/

[[email protected] WEB-INF]# ls

web.xml

[[email protected] WEB-INF]# cp /etc/tomcat/web.xml  .

[[email protected] WEB-INF]# vim web.xm

重启所有服务

[[email protected]~]# systemctl restart nginx

[[email protected]~]# systemctl restart tomcat

[[email protected]~]# systemctl restart tomcat

测试

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

时间: 2024-10-06 11:16:41

Nginx+tomcat session cluster会话保持实验的相关文章

Session会话保持机制的原理与Tomcat Session Cluster示例

一.Session的定义 在计算机科学中,特别是在网络中,session是两个或更多个通信设备之间或计算机和用户之间的临时和交互式信息交换.session在某个时间点建立,然后在之后的某一时间点拆除.建立的通信session可以在每个方向上涉及多个消息.session通常是有状态的,这意味着至少一个通信部分需要保存关于会话历史的状态信息以便能够进行通信,而在无状态通信中,通信由具有响应的独立请求组成.--Wikipedia Session:在计算机中,尤其是在网络应用中,称为"会话控制"

Nginx + Tomcat + Session

分别下载 tomcat http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.tar.gz nginx http://nginx.org/download/nginx-1.1.14.tar.gz 准备两个虚拟机: server1 192.168.1.112 server2 192.168.1.64 Tomcat直接解压,运行,使用默认的8080端口 tar zxvf apache-tomca

nginx+tomcat session 共享

* tomcat1 192.168.10.153 * tomcat2 192.168.10.154 Tomcat 工作模式必须为Nio 模式. ##添加如下内容, 注意更换 address="192.168.10.154" 为本机IP vim /usr/local/tomcat/conf/server.xml <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSend

【nginx】nginx tomcat session 共享配置

tomcat,redis下载忽略. 一.从github上下载源码,https://github.com/jcoleman/tomcat-redis-session-manager, 将源码复制到开发工具,打包成jar.注意tomcat版本,此处用tomcat 7.0.72,maven编译环境同样为1.7. 二.准备两个tomcat, 版本为上述7.0.72. 并修改指定端口,8081,8082,将上述jar,redis,commons-pool2 放到tomcat lib目录中. 按照githu

tomcat session cluster

使用httpd反代负载均衡后端tomcat,tomcat使用自带的集群服务实现会话集群: 实现环境: node1:172.18.11.111 TomcatA node2:172.18.11.112 TomcatB node3:172.18.11.113 反代调度器httpd 分别在node1和node2上安装tomcat: ]# vim /etc/profile.d/java.sh export JAVA_HOME=/usr ]# . /etc/profile.d/java.sh ]# yum

nginx tomcat session丢失的问题

nginx反向代理tomcat,出现seesion获取不到的问题. 网上搜索到的解决方案大多是集群tomcat共享session共享的问题,但我这个只有一台tomcat服务器,不涉及到服务器集群问题. 但也找了最靠谱的ip_hash方案试了一下,由于配置的时候不小心配到了根路径,所以在测试的时候手动加上了项目名称访问正常,session竟然也正常了... 考虑到刚才的情况,应该是代理多了个项目名导致session路径不一致,所以有两个解决方案: 屏蔽掉项目名称 为项目指定cookie路径

Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster 大纲

Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster 大纲 前言 实验拓扑 实验步骤 安装配置tomcat 安装配置Apache Httpd并测试 实现session sticky 实现Session Cluster 总结 前言 上篇文章我们介绍如何构建一个LANMT平台并搭建一个jspxcms, 这次我们介绍使用apache httpd负载均衡Tomcat并实现Session Sticky和Session Cluster 实验拓扑 实验

高性能Web服务之Httpd负载均衡Tomcat实现Session Sticky及Session Cluster

Httpd负载均衡Tomcat实现Session Sticky及Session Cluster架构如下所示: 实现过程如下: 配置tomcat服务(tomcat1\tomcat2) (1)安装JDK # rpm -ivh jdk-7u9-linux-x64.rpm  --安装JDK后生成的文件 # cd /usr/java/ ; ll total 4 lrwxrwxrwx  1 root root   16 Sep 27 09:09 default -> /usr/java/latest drw

nginx+tomcat+memcache会话保持

一 Tomcat 简介: Tomcat服务器是一个免费的开发源代码的WEB应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.其主要的应用场景是解析动态程序代码(Java)JSP程序可以处理Tomcat界面 二 环境安装: 主机名 IP地址 作用 server 1 192.168.3.10 nginx调取器,Tomcat客户端,memcached服务器 server 2 192.168.3.20 tomcat 客户端,memcac