您的位置:首页 > 数据库 > Memcache

Apache+Tomcat+Memcached的集群搭建与基本配置

2015-11-27 18:20 786 查看
【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】可以搭建一台专门的日志服务器,记录日志
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: