便民 发表于 2017-1-14 08:43:42

【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-develgcc -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.gzminlog-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 {
listen80;
access_loglogs/jsp_server_pool.access.logmain;
location/ {
proxy_passhttp://jsp_server_pool;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For$remote_addr;
}
}


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

  【7】 总结
  

1】 实际工作境中可用 NFS 解决 tomcat 服务器的网页一致性问题

2】可以搭建一台专门的日志服务器,记录日志
  
页: [1]
查看完整版本: 【redhat5.5】apache+tomcat+memcached的集群搭建与基本配置