Apache&Tomcat实现负载均衡

一.准备

工具环境:

Apchae 2.4:http://httpd.apache.org/download.cgi

Tomcat 8:https://tomcat.apache.org/download-80.cgi

mod_jk:https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

二.安装

解压Apache和tomcat,mod_jk.so放到Apache下的modules目录。

三.配置

1.Apache

1.1 http.conf

在apache安装目录下conf目录中找到http.conf配置文件,在文件最后加上:

Include conf/mod_jk.conf

1.2 mod_jk.conf

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

#加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
   
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
   
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /*.jsp controller

如果想对所有的请求进行分流只需要写成

JkMount /* controller


 

1.3 workers.properties

在http.conf同目录下新建 workers.properties文件:

worker.list = controller,tomcat1,tomcat2  #server 列表
#========tomcat1========
worker.tomcat1.port = 8011       #ajp13 端口号,在tomcat下server.xml配置
worker.tomcat1.host = localhost  #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type = ajp13
worker.tomcat1.lbfactor = 1    #server的加权比重,值越高,分得的请求越多
     
#========tomcat2========
worker.tomcat2.port = 8012
worker.tomcat2.host = localhost
worker.tomcat2.type = ajp13
worker.tomcat2.lbfactor = 2
   
#========controller,负载均衡控制器========
worker.controller.type = lb
worker.controller.sticky_session = false    #设置为非粘性
worker.controller.balanced_workers= tomcat1,tomcat2   #指定分担请求的tomcat

2.Tomcat

2.1 server.xml

指定此tomcat与worker.properites配置文件中配置的worker名称对应

如果为垂直集群还需修改各个tomcat的下列端口唯一

Apache&Tomcat实现负载均衡_第1张图片


3.Session replication

使用tomcat的广播机制实现的session共享

1)      各个tomcat的server.xml配置文件中的节点的注释去掉

2)      项目的web.xml中添加属性,用于告诉web容器,该项目属于分布式项目,不然无法session共享


你可能感兴趣的:(笔记)