【redhat5.5】apache+tomcat+memcached的集群搭建与基本配置

【1】 基本介绍及架构
1】 apache服务器 作为分发器 (IP:10.10.68.1)
2】 tomcat服务器 提供web服务 (IP:10.10.68.11 10.10.68.12)
3】 memcached服务器 保证session同步 (IP:10.10.68.21 10.10.68.22)

【2】 apache(10.10.68.1)的配置
1】安装软件包

   yum install httpd httpd-devel  gcc -y

2】安装功能软件包(ajp1.3)
< a > 解压

 tar zxvf tomcat-connectors-1.2.32-src.tar.gz  -C /tmp
 cat /tmp/tomcat-connectors-1.2.32-src/BUILD.txt 
 cd native
  ./configure --with-apxs=/usr/sbin/apxs 
 make && make install
 cp  ../conf/httpd-jk.conf /etc/httpd/conf.d/jk.conf

< b > 编辑配置文件 /etc/httpd/conf.d/jk.conf
在文件最后添加

 JkMount   /*.jsp         wlb            
 JkMount   /manager/*     wlb
 JkMount   /*.gif         wlb

< c > 创建文件 /etc/httpd/conf/workers.properties
 worker.list=wlb
 worker.wlb.type=lb
 worker.wlb.balance_workers=tomcat1,tomcat2
 worker.tomcat1.type=ajp13
 worker.tomcat1.host=10.10.68.11
 worker.tomcat1.port=8009
 worker.tomcat1.lbfactor=2       #权重  调整负载
 worker.tomcat2.type=ajp13
 worker.tomcat2.host=10.10.68.12
 worker.tomcat2.port=8009
 worker.tomcat2.lbfactor=1

< d > 重启httpd服务
  service httpd start

【3】tomcat服务器(IP:10.10.68.11 10.10.68.12)的安装与配置
1】安装jdk软件

< a > 解压包

       chmod +x jdk-6u27-linux-i586.bin 
       ./jdk-6u27-linux-i586.bin 
       mv jdk1.6.0_27/ /usr/local/jdk

< b > 编辑 /etc/bashrc 文件 配置环境变量

        export JAVA_HOME=/usr/local/jdk
        export JAVA_BIN=/usr/local/jdk/bin/
        export PATH=$JAVA_HOME/bin:$PATH
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        export JAVA_HOME JAVA_BIN PATH CLASSPATH

< c > 重载 /etc/bashrc 查看java软件版本
        source /etc/bashrc
        java -version

2】解压tomcat软件包 并启动
        tar zxf apache-tomcat-6.0.32.tar.gz 
        mv apache-tomcat-6.0.32 /usr/local/tomcat
        cd /usr/local/tomcat/bin 
        ./startup.sh 

3】编辑默认首页 为测试准备
<a> 10.10.68.11
vim /usr/local/tomcat/webapps/ROOT/index.jsp
       <html>
       <body bgcolor="red">
       <center>
       <%= request.getSession().getId() %>
       <h1>Tomcat 1(10.10.68.11)</h1>
       </body>
       </html>

<b> 10.10.68.22
       <html>
       <body bgcolor="blue">
       <center>
       <%= request.getSession().getId() %>
       <h1>Tomcat 2(10.10.68.12)</h1>
       </body>
       </html>

<c> 测试 运行正常 可以实现负载均衡 但session 不同步

4】 为tomcat服务器安装session同步支持插件

<a> 安装jar包

          cp /session/*.jar /usr/local/tomcat/lib

jar包名称:
          kryo-1.04.jar                  
          memcached-session-manager-1.5.1.jar
          kryo-serializers-0.9.jar       
          memcached-session-manager-tc6-1.5.1.jar
          libevent-1.4.11-stable.tar.gz  minlog-1.2.jar
          memcached-1.4.5.tar.gz         
          msm-kryo-serializer-1.5.1.jar
          memcached-2.5.jar              
          reflectasm-1.01.jar

<b> 编辑 /usr/local/tomcat/conf/context.xml (在<Context></Context>内)
          <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
          memcachedNodes="n1:10.10.68.21:11211"
          failoverNodes="n2:10.10.68.22:11211"   #n2为备用
          requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
          transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
          />

若只有一台
memcachedNodes="n1:10.10.68.21:11211"

<c> 重启tomcat服务器
   /usr/local/tomcat/bin/shutdown.sh
   /usr/local/tomcat/bin/startup.sh

【4】memcached服务器(IP:10.10.68.21 10.10.68.22)的安装与配置
1】 安装支持libevent

     ar xf libevent-1.4.11-stable.tar.gz
     cd libevent-1.4.11-stable
     ./configure
     make
     make install

2】安装服务器软件包memcached
     tar xf memcached-1.4.5.tar.gz
     cd memcached-1.4.5
     ./configure
     make
     make install

3】 启动 memcache 服务
 /usr/local/bin/memcached -d -m 10 -u root -l 10.10.68.21  -p 11211 -c 256 -P  /tmp/memcached.pid

  参数:
     -d : 以服务的形式运行
     -m : 所占内存大小 默认10M   实际工作中要大
     -u : 以root身份运行
     -l : 监听IP地址
     -d : 监听端口
     -c : 最大并发连接数 默认1024ge

【5】 配置完成 可以测试 同时解决session 同步问题


【6】 分发器换成nginx (IP:10.10.68.1)后的简单配置
1】编辑nginx 的配置文件
vim /usr/local/nginx/conf/nginx.conf

   upstream jsp_server_pool{
      server 10.10.68.11:8080;
      server 10.10.68.12:8080;
    }   
    
    server {
       listen  80; 
       access_log  logs/jsp_server_pool.access.log  main;
    
        location  / { 
          proxy_pass  http://jsp_server_pool;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For  $remote_addr;
       }
    }

2】 重启nginx服务 测试成功。


【7】 总结


1】 实际工作境中可用 NFS 解决 tomcat 服务器的网页一致性问题
2】可以搭建一台专门的日志服务器,记录日志


你可能感兴趣的:(memcached)