本文是基于win7 64位系统Apache+Tomcat集群配置 基于apache 2.4.16-x64 和tomcat 7.0.61-windows-x64实现均衡负载 。
准备环境
Apache
Apache是http服务器,我们利用其对Tomcat进行负载均衡。下载地址为http://httpd.apache.org/download.cgi如下图:
Tomcat
本人采用的是tomcat 7.0.61-windows-x64。经我测试,下面的配置在Tomcat6或7集群是通用的。但是按照下面的配置,集群中Tomcat不能既有Tomcat6又 有Tomcat7,否则虽能够负载均衡,但不能进行session复制,不知其他方式配置的集群是否可以。
JK
JK是Tomcat提供给apache服务器的插件,下载地址为http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/。如下图:(请下版本 号能对应的so)
配置过程
修改Apache配置(在所有的配置过程中,请务必注意空格)
1、修改httpd.conf
我的Apache安装在D:\tools\apache\Apache,找到conf目录下的httpd.conf,在文件的最后一行添加 Includeconf/mod_jk.conf
2、新建mod_jk.conf文件,内容如下:(如果你配置完成后,apache server
无法执行某个操作,请检查这里的路径是否正确,jk.so是否在指定的目录下) LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JkWorkersFileconf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.jsp controller
文件内容如下:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkMount /*.jsp controller
3、 将下载的JK插件mod_jk.so复制到Apache安装目录的modules目录下,解压以后得目录结构如下
4、新建并编辑workers.properties文件,内容如下:
#server
worker.list=controller
#========tomcat1========
worker.tomcat1.port=11009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
#========tomcat2========
worker.tomcat2.port=12009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#========tomcat3========
worker.tomcat3.port=13009
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor=1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=true
配置Tomcat
配置3个Tomcat服务器,将Tomcat解压后复制3份,我将每个文件夹分别命名为Tomcat1,Tomcat2和Tomcat3,修改每一份的server.xml配置,将Tomcat1 中修改部分如下图:
Tomcat1 server.xml文件修改如下图:
Tomcat2 server.xml文件修改如下图:
Tomcat3 server.xml文件修改如下图:
测试
随便建一个web项目即可测试,但访问的路径必须以.jsp结尾。(例如:http://localhost/websocket/index.jsp),至于session是否共享我就不在这里 啰嗦了,大 家一测便知。