阿尔海南粉 发表于 2018-11-9 13:59:38

nginx+tomcat集群--(session同步)

  ulimit -SHn 65535
  echo "ulimit -SHn 65535" >>/etc/rc.local
  环境:
  redhat6.3、pcre-8.12、nginx-upstream-jvm-route-0.1、nginx-1.0.5、apache-tomcat-6.0.33
  nginx服务器地址:192.168.10.40
  tomcat1:192.168.10.20
  tomcat2:192.168.10.30
  拓扑如下:

  1.安装nginx
  下载pcre包:
  wget http://ftp.exim.llorien.org/pcre/pcre-8.12.tar.gz
  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
  下载nginx源码包:
  wget http://nginx.org/download/nginx-1.0.5.tar.gz
  tar xzf nginx-1.0.5.tar.gz
  cd nginx-1.0.5
  patch -p0   export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
  source /etc/profile //使环境变量立即生效
  5.tomcat集群配置
  tomcat1配置:
  修改vim /usr/local/tomcat/conf/server.xml配置文件;找到Engine 这行修改,并且在这行添加
  下面的

    channelSendOptions="8">

    expireSessionsOnShutdown="false"
  notifyListenersOnReplication="true"/>

  
    address="224.0.0.4"
  port="45564"
  frequency="500"
  dropTime="3000"/>

    address="192.168.10.20"
  port="4001"
  autoBind="100"
  selectorTimeout="5000"
  maxThreads="6"/>

  
    

  
  
    

    filter=""/>

  
    tempDir="/tmp/war-temp/"
  deployDir="/tmp/war-deploy/"
  watchDir="/tmp/war-listen/"
  watchEnabled="false"/>

  
    
  注意:以上有个IP为address="192.168.10.20" 修改为自己本机的ip。
  address="192.168.1.102"组播IP,一般为本机
  address="224.0.0.4"#约定的广播地址,所有服务器相同
  port="4001"#集群通讯端口--如果tomcat集群在不同机器上端口可修改为不同
  tomcat2配置:
  修改/usr/local/tomcat/conf/server.xml配置文件类似上面的tomcat1的配置:
  如下:
  

    channelSendOptions="8">

    expireSessionsOnShutdown="false"
  notifyListenersOnReplication="true"/>

  
    address="224.0.0.4"
  port="45564"
  frequency="500"
  dropTime="3000"/>

    address="192.168.0.30"
  port="4000"
  autoBind="100"
  selectorTimeout="5000"
  maxThreads="6"/>

  
    

  
  
    

    filter=""/>

  
    tempDir="/tmp/war-temp/"
  deployDir="/tmp/war-deploy/"
  watchDir="/tmp/war-listen/"
  watchEnabled="false"/>

  
    
  注意:以上有个IP为address="192.168.10.30" 修改为自己本机的ip。
  6.session配置
  修改web应用里面WEB-INF目录下的web.xml文件,加入标签
  
  直接加在之前
  开启网卡组播功能: --(两台都运行同样的如下命令)
  route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
  7.修改tomcat的web主目录--- 两台机器分别都运行。
  vim /usr/local/tomcat/conf/server.xml
  找到
  
  在这行下面添加如下一行--即可把目录换成了/liang/test/下:

    7.创建jsp测试页面
  在tomcat1下建立目录test
  mkdir /liang/test/
  vi index.jsp
  
  
  tomcat1 jsp
  
  
  
  ----------------------------
  在tomcat2下建立目录test
  mkdir /liang/test/
  vi index.jsp
  
  
  tomcat2 jsp
  
  
  
  8.在两台tomcat上分别启动tomcat 进行测试:
  启动命令:
  cd /usr/local/tomcat/bin
  ./startup --启动进行访问
  9.测试结果
  访问192.168.10.40 返回的结果为tomcat1或者tomcat2上一台后就不会改变访问结果
  注意: 中途有问题 可以在单独搭建好tomcat后分别访问tomcat的8080端口看是否能正常访问网站
  ----如果不能,可查看下机器上的iptables等进行排错。
  补充:想要适当解决内存溢出问题jdk选jrockit-jdk1.6.0_29-R28.2.0-4.1.0-linux-x64

页: [1]
查看完整版本: nginx+tomcat集群--(session同步)