nginx+tomcat集群+session复制

it2022-05-09  34

当然,所有下面这些都来源tomcat官方文档,所以看官方文档,最好!!!! 上面的配置是在两台不同的配置上进行,tomcat负载和session复制都成功了。但是如果在同一台机子上配置,则session复制总是不能成功,搜索了很多解决方式都不正确。 http://jackandroid.iteye.com/blog/627147另外一篇好文:

apache2.2.16+mod_jk.1.2.30+tomcat7.0.2sessionhttp://wenku.baidu.com/view/380b95f69e3143323968937e.html

原文:http://baiying.blog.51cto.com/1068039/731021 ulimit -SHn 65535  echo "ulimit -SHn 65535" >>/etc/rc.local 环境:  redhat5.4、pcre-8.12、nginx-upstream-jvm-route-0.1、nginx-1.0.5、apache-tomcat-6.0.33  nginx服务器地址:192.168.0.40  tomcat1:192.168.0.20  tomcat2:192.168.0.30 拓扑如下:     1.安装nginx tar zxf pcre-8.12.tar.gz  cd pcre-8.12  ./configure  make;make install 下载下面的插件安装,否则nginx无法识别tomcat中jvmRoute,从而无法达到session复制的效果。 wget  http://friendly.sinaapp.com//LinuxSoft/nginx-upstream-jvm-route-0.1.tar.gz  tar xzf nginx-upstream-jvm-route-0.1.tar.gz  tar xzf nginx-1.0.5.tar.gz  cd nginx-1.0.5  patch -p0 <../nginx_upstream_jvm_route/jvm_route.patch  /configure --prefix=/usr/local/nginx --with-http_stub_status_module  --with-pcre=/root/pcre-8.12 --add-module=../nginx_upstream_jvm_route/  #--with-pcre=指向的是pcre的源码包  make;make install 2.配置nginx vim /usr/local/nginx/conf/nginx.conf #user  nobody;  worker_processes  1; #error_log  logs/error.log;  #error_log  logs/error.log  notice;  #error_log  logs/error.log  info; pid        /usr/local/nginx/logs/nginx.pid;  worker_rlimit_nofile 51200; events {      worker_connections  5000;  } http {    upstream backend {      server 192.168.0.20:8080 srun_id=tomcat1; //在tomcat的配置里会配置jvmRoute为tomcat1     server 192.168.0.30:8080 srun_id=tomcat2;      jvm_route $cookie_JSESSIONID|sessionid reverse;    } include       mime.types;  default_type  application/octet-stream;  #charset  gb2312;  charset UTF-8;  server_names_hash_bucket_size 128;  client_header_buffer_size 32k;  large_client_header_buffers 4 32k;  client_max_body_size 20m;  limit_rate  1024k;  sendfile on;  tcp_nopush     on;  keepalive_timeout 60;  tcp_nodelay on;  fastcgi_connect_timeout 300;  fastcgi_send_timeout 300;  fastcgi_read_timeout 300;  fastcgi_buffer_size 64k;  fastcgi_buffers 4 64k;  fastcgi_busy_buffers_size 128k;  fastcgi_temp_file_write_size 128k;  gzip on;  #gzip_min_length  1k;  gzip_buffers     4 16k;  gzip_http_version 1.0;  gzip_comp_level 2;  gzip_types       text/plain application/x-javascript text/css application/xml;  gzip_vary on; server  {     listen       80;     server_name  www.baiying.com;     index index.jsp index.htm index.html;     root  /usr/www;    location /  {       proxy_pass   http://backend;       proxy_redirect    off;       proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;       proxy_set_header  X-Real-IP  $remote_addr;       proxy_set_header  Host $http_host;     }     location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$     {       expires      30d;     }     location ~ .*\.(js|css)?$     {       expires      1h;     }     location /Nginxstatus {       stub_status on;       access_log   off;     }    log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '               '$status $body_bytes_sent "$http_referer" '               '"$http_user_agent" $http_x_forwarded_for'; }  }                                                                                                             [root@slave conf]# /usr/local/bin/nginx.sh stop  [root@slave conf]# /usr/local/bin/nginx.sh start    3.安装tomcat  1)安装tomcat_1  tar zxf apache-tomcat-6.0.33.tar.gz  mv apache-tomcat-6.0.33/usr/local/tomcat  cp tomcat-replication.jar /usr/local/tomcat/lib  2)安装tomcat_2,步骤同1) 4.分别在tomcat服务器安装jdk chmod 755 jdk-6u26-linux-i586-rpm.bin  ./jdk-6u26-linux-i586-rpm.bin cat >>/etc/profile <<EOF export JAVA_HOME=/usr/java/jdk1.6.0_26  export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin EOF; source /etc/profile  //使环境变量立即生效 5.tomcat集群配置  tomcat1配置:  修改conf/server.xml配置文件     <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">          <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="224.0.0.4"                          port="45564"                          frequency="500"                          dropTime="3000"/>              <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"                        address="192.168.0.20"                        port="4001"                        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"/>           <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>            </Channel>            <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"                   filter=""/>            <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>            <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"                      tempDir="/tmp/war-temp/"                      deployDir="/tmp/war-deploy/"                      watchDir="/tmp/war-listen/"                      watchEnabled="false"/>            <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>            <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>          </Cluster>  tomcat2配置:  修改conf/server.xml配置文件     <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">          <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="224.0.0.4"                          port="45564"                          frequency="500"                          dropTime="3000"/>              <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"                        address="192.168.0.30"                        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"/>           <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>            </Channel>            <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"                   filter=""/>            <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>           <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"                      tempDir="/tmp/war-temp/"                      deployDir="/tmp/war-deploy/"                      watchDir="/tmp/war-listen/"                      watchEnabled="false"/>            <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>            <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>          </Cluster> 6.session配置 修改web应用里面WEB-INF目录下的web.xml文件,加入标签  <distributable/>  直接加在</web-app>之前  开启网卡组播功能:  route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 7.创建jsp测试页面  在tomcat1安装路径下建立目录test  mkdir /usr/local/tomcat/webapps/ROOT/test/  vi index.jsp  <html>  <title>  tomcat1 jsp  </title>  <%     String showMessage="Oh My God 192.168.0.20 华仔!";     out.print(showMessage);  %>  </html>  ----------------------------  在tomcat2安装路径下建立目录test  mkdir /usr/local/tomcat/webapps/ROOT/test/  vi index.jsp  <html>  <title>  tomcat2 jsp  </title>  <%     String showMessage="Oh My God 192.168.0.30 华仔!";     out.print(showMessage);  %>  </html>

转载于:https://www.cnblogs.com/yuanq_20/articles/3046222.html


最新回复(0)