> CentOS > CentOS服务器 > 负载均衡 >

CentOS下Apache+Tomcat 负载均衡

前言:采用apache+tomcat的组合在目前还是挺多的,为了使用jsp,大部分的公司都采用apache+tomcat:

一、系统版本:Centos 5.3 64位系统


  1. Nginx版本为:httpd-2.2.13.tar.bz2    

  2. Jdk版本为:1.6.0_18_64  

  3. Tomcat版本为:Apache Tomcat/6.0.30  

  4. 其他相似版本也可以!安装服务所需的包如下下载路径:本网站集成部分下载:  

  5.  

  6. jdk请到以下网站下载:请选择自己系统版本的jdk。  

  7. https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter  

  8.  

  9. Apache、Tomcat下载地址,下载到/usr/src下】  

  10.  

  11. cd  /usr/src && wget  http://blog.mgcrazy.com/download/{httpd-2.2.13.tar.bz2,apache-tomcat-6.0.30.tar.gz }

二、安装Apache

  1. cd /usr/src && tar -jxvf httpd-2.2.13.tar.bz2 && cd httpd-2.2.13/srclib/apr &&./configure --prefix=/usr/local/apr &&make &&make install &&cd ../apr-util/ && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr &&make&&make install && cd ../../ && ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --with-mpm=worker --enable-deflate --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-proxy --enable-proxy-ajp --enable-proxy-balancer --enable-proxy-http --enable-rewrite --enable-charset-lite --disable-ipv6 --disable-dav --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

可以直接拷贝安装apache
【注意*这里安装mod_proxy处理Tomcat jsp页面模块,安装apr、apr-util增加Tomcat处理性能,当然也可以用mod_jk的方式,如果是mod_jk的方式的话,可以参考这篇文章:
http://bbs.linuxtone.org/thread-1195-1-1.html
 
三、Tomcat安装配置:
将所需的包下载至/usr/src 目录;首先安装jdk:
chmod o+x jdk* && ./jdk* ;程序包会提示按回车键,我们根据提示安装即可,解压完毕,会在当前目录生成 jdk1.6.0_18 文件夹

  1. mkdir -p /usr/java && mv jdk1.6.0_18 /usr/java/下  

  2.  

  3. vi /etc/profile 最后面加入以下语句:  

  4. export JAVA_HOME=/usr/java/jdk1.6.0_18  

  5. export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  

  6. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin  

  7. source /etc/profile //使环境变量马上生效  

  8. java –version //查看java版本,显示版本是1.6.0_18,并且是64位的证明安装成功!  

  9. Java HotSpot(TM) 64-Bit Server VM (build 16.0-b10, mixed mode)  

  10.  

  11.  

  12. cd /usr/src && tar xzf apache-tomcat-6.0.30.tar.gz  

  13. 解压完成执行:  

  14. mv apache-tomcat-6.0.30 /usr/local/tomcat_1 && cp /usr/local/tomcat_1 /usr/local/tomcat_2  -r

设置tomcat的java变量

  1. cd /usr/local/tomcat_1/bin/ && vi setenv.sh 创建一个setenv.sh脚本文件,添加如下语句即可  

  2. JAVA_HOME=/usr/java/jdk1.6.0_18  

  3. JAVA_JRE=/usr/java/jdk1.6.0_18/jre  

  4. 并且拷贝setenv.sh文件到tomcat_2/bin/下:  

  5. cp -p /usr/local/tomcat_1/bin/setenv.sh /usr/local/tomcat_2/bin 下即可!  

  6. 保存退出  

  7. 检查两个tomcat下bin目录的*.sh 文件是否有可执行权限,如果没有则进入到相应的目录执行 chmod o+x *.sh 即可!  

  8. 给两个tomcat分别创建不同的目录如下:mkdir -p /usr/webapps/{www_1,www_2}  

  9.  

  10. 修改Tomcat_1的 server.xml文件如下地方:  

  11. <Enginename="Catalina"defaultHost="localhost"jvmRoute="tomcat1">

  12.  

  13.  

  14. 还有一个地方在</host>前面加入:也就是你的应用所在的目录,并删除tomcat下webapps的ROOT自带的程序:find  /usr/local/  -name ROOT |xargs rm -rf {}\; 然后指定你新建的程序:  

  15. <Contextpath=""docBase="/usr/webapps/www_1"reloadable="true"/>

  16.  

  17. 同样的道理设置tomcat_2:  

  18. <Enginename="Catalina"defaultHost="localhost"jvmRoute="tomcat2">

  19.  

  20. <Contextpath=""docBase="/usr/webapps/www_2"reloadable="true"/>

  21. 分别设置两个tomcat的jvmroute名称为tomcat1和tomcat2,一会在apache配置文件中会用到!

 
四、配置Apache虚拟主机
修改vhosts.conf

  1. NameVirtualHost *:80  

  2. <VirtualHost *:80>

  3.    ServerAdmin wgkgood@163.com  

  4.    DocumentRoot "/usr/webapps/www"  

  5.    ServerName  192.168.2.79  

  6. <Directory "/usr/webapps/www ">

  7.       AllowOverride None  

  8.       Options None  

  9.       Order allow,deny  

  10.       Allow from all  

  11. </Directory>

  12.    ProxyRequests Off  

  13.    RewriteEngine On  

  14.    ProxyPreserveHost On  

  15.    RewriteRule ^$ balancer://wwwCluster/ [P,L,NC]  

  16.    RewriteRule ^/(.*)$ balancer://wwwCluster/$1 [P,L,NC]  

  17.  

  18. <Proxy balancer://wwwCluster>

  19.    BalancerMember ajp://localhost:8411  route=tomcat1

  20.    BalancerMember ajp://localhost:8412  route=tomcat2

  21. </Proxy>

  22. </VirtualHost>

 
如上,8411和8412是两个tomcat的AJP端口,可以根据实际情况修改,这样的话,所有配置都完毕了!启动apache ok!
 
在两个tomcat的发布目录都新建一个index.jsp 内容分别输入:

  1. <html>

  2. <body>

  3. <h1> TOMCAT_1 JSP Test Page</h1>

  4. <%=new java.util.Date()                                    

  5. %>

  6. </body>

  7. </html>

第二台机器,写入以下内容:

  1. <html>

  2. <body>

  3. <h1>TOMCAT_2 JSP Test Page</h1>

  4. <%=new java.util.Date()                                    

  5. %>

  6. </body>

  7. </html>

 
然后直接访问 http://192.168.2.79 ;出现不同的页面,也就是两个tomcat的内容。

 

本文出自 “吴光科-专注自动化运维” 博客,请务必保留此出处http://wgkgood.blog.51cto.com/1192594/558220

 

(责任编辑:IT)