日期:2014-05-17  浏览次数:20731 次

结合Apache和Tomcat实现集群和负载均衡(转)

http://blog.csdn.net/kypfos/article/details/3081330

?

?

本文基本参考自?轻松实现Apache,Tomcat集群和负载均衡,经由实操经历记录而成,碰到些出入,以及个别地方依据个人的习惯,所以在一定程度上未能保持原文的完整性,还望原著者海涵。

因原文中有较多的贴图,如若各位读者一时不想亲自动手而直想看到配置效果,可查看原文。

一:软件环境
?? 1. Apache: apache 2.0.55 (由http://httpd.apache.org/进入下载)(点击下载apache 2.0.55)
?? 2. Tomcat: Tomcat 5.5.25 (由http://tomcat.apache.org/进入下载)(点击下载Tomcat 5.5.25 zip版)
?? 3. mod_jk: 在页面?http://tomcat.apache.org/?? Download 标题下找到 Tomcat Connectors 链接进入(?点击下载mod_jk-apache-2.0.55.so),看起来像是个Unix/Linux下的动态库,实际应是个Win32 的 DLL 动态库,大概是为保持不同平台配置的一致性,才用了这个扩展名。

二:负载均衡
 用Apache进行分流,把请求按照权重以及当时负荷分tomcat1,tomcat2...去处理

1. 安装apache,tomcat
?? 我把Apache安装在D:/Apache Group/Apache2
  解压两分Tomcat, 分别在 D:/Apache Group/Tomcat5_1,D:/Apache Group/Tomcat5_2
?? 如果把不同版本的Tomcat进行集群,目录就可用Tomcat4_3(版本为4.x的第三个tomcat服务器),Tomcat6_4(版本为6.x的第三个tomcat服务器),这是Unmi本人的习惯。

2.修改Apache配置文件http.conf

?? 在apache安装目录下conf目录中找到http.conf,在文件最后加上下面一句话就可以了

???include conf/mod_jk.conf

3. http.conf 同目录下新建mod_jk.conf文件,内容如下

如果还要指定*.do也进行分流就再加一行
JkMount /*.do controller

如果你想对所有的请求进行分流只需要写成
JkMount /* controller

4. 在http.conf同目录下新建 workers.properties文件,内容如下(可能要去除 # 不在行首的注释)

5. 修改tomcat配置文件server.xml
如果你是水平集群,即在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件.我这里是在同一台电脑上安装两个tomcat,实现的是垂直集群方式,所以必须修改其中一个的设置,以避免端口冲突,按照参考文章是把原来以9开头的端口号改为以9开头端口号,但是在我机器上如果以9开头的端口号,例如9080、9082会与我的WebSphere Application Server配置冲突,所以我这里采取的策略是把原来端口号的第三位改为1,如8080改为8180。

打开tomcat2/conf/server.xml文件

1) 将关闭Tomcat的监听端口改成由8005改为8105
即把
?<Server port="8005" shutdown="SHUTDOWN">
改为
?<Server port="8105" shutdown="SHUTDOWN">

2) 把http服务端口号由8080改为8180
找到
?<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
??? <CONNECTOR port="8080"?

把这里的8080改为8180

3) 把AJP端口号由8009改为8109
找到
?<!-- Define an AJP 1.3 Connector on port 8009 -->
??? <CONNECTOR port="8009"

把这里的8009改为8109

4) 把 HTTP 代理端口从8082改为8182(这个配置默认是被注释掉的,可跳过这一步)
找到
<CONNECTOR port="8082"
把这里的8082改为8182