(1)将tomcat解压后放在Apache目录,命名为tomcat1,tomcat2,tomcat3.。。。。。
(2)在Apache目录中进入conf目录,在其中新建mod_jk.conf文件,在其中写入
#加载mod_jk Module
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /*.jsp controller
#如果还要指定*.do也进行分流就再加一行
#JkMount /*.do controller
#如果你想对所有的请求进行分流只需要写成
#JkMount /* controller
(3)再创建workers.properties文件,写入(假设只有两个tomcat)
worker.list = controller,tomcat1,tomcat2 #server 列表
#========tomcat1========
worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#========tomcat2========
worker.tomcat2.port=8019 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 2 #server的加权比重,值越高,分得的请求越多
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=1
(4)将mod_jk.conf引入httpd.conf,在文件最后加入include conf/mod_jk.conf即可
(5)修改两个tomcat的配置文件,tomcat1\conf目录下的server.xml
需修改此三处:
connectionTimeout="20000" redirectPort="8443" /> 修改为和worker.properties文件中的对应即可 (6)将mod_jk-apache-2.2.4.so文件放入Apache下的modules文件夹中 注:Apache版本不同,mod_jk的版本也不同,要一一对应,需重点注意。 (7)将项目放入两个tomcat的webapp目录下,启动Apache和tomcat,然后浏览器访问。 这里测试用随便写的JSP即可,如下: <% System.out.println("1111111111111111111111111"); out.println("11111"); %> 访问页面多次刷新后结果如下图: 可见两个tomcat分别处理了数次请求,一个是另一个的一倍,这是因为在上面的例子中的在配置文件worker.properties中我们设置的Tomcat2的权值为2,如果把两个均设置为1,则处理的请求数量则相同,如下图: 如果设置为1和3则如下图: 设置为2和3如下图: 由此可知,权值与请求分发为倍数关系。 注意Apache和mod_jk的对应关系。这个与Tomcat无对应关系,各个版本均可使用。 注意:1.worker文件的格式一定要修改正常,尽量不要用记事本修改,一般APACHE的问题都是这个文件格式问题,用记事本编辑后会有不能读取的BUG 2.注意端口号不要重复,tomcat数量较多时一定要注意,每个里边三个端口号,与其他的不能重复,不能被占用,否则会出错。