【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
< 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】可以搭建一台专门的日志服务器,记录日志