一、规划
前端Apache:192.168.10.135
后端tomcat:192.168.10.132
192.168.10.133
二、配置Tomcat
①配置server.xml
# vi /usr/local/tomcat/conf/server.xml ##位于103行TomcatA:TomcatB:
②配置测试页
# cd /usr/local/tomcat/webapps/ROOT# mv index.jsp index.jsp.bak# vi index.jsp
TomcatA:
<%@ page language="java" %>TomcatA TomcatA
TomcatB:
<%@ page language="java" %>TomcatB TomcatB
三、基于mod_jk实现
①配置mod_jk配置文件
# vi /etc/httpd/conf/mod_jk.confJkWorkersFile /etc/httpd/conf/workers.properties ##指出mod_jk工作所需文件位置JkLogFile logs/mod_jk.log ##指定日志输出文件位置JkLogLevel debug ##指定日志级别JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectoriesJkRequestLogFormat "%w %V %T"JkMount /* lbcluster1 ##指定负载均衡器名称JkMount /status/ stat1 ##指定状态信息
②配置worker.properties
# vi /etc/httpd/conf/workers.properties# workers 列表worker.list = lbcluster1,stat1#-------------------------------------------------# tomcat实例1#-------------------------------------------------worker.TomcatA.type = ajp13 ##定向包协议worker.TomcatA.host = 192.168.10.132 ##tomcat主机地址worker.TomcatA.port = 8009 ##TomcatA实例端口worker.TomcatA.lbfactor = 1 ##负载均衡权重为1#-------------------------------------------------# tomcat实例2#-------------------------------------------------worker.TomcatB.type = ajp13worker.TomcatB.host = 192.168.10.133worker.TomcatB.port = 8009worker.TomcatB.lbfactor = 1#-------------------------------------------------# load balancer worker --负载均衡控制器# ------------------------------------------------worker.lbcluster1.type = lb ##负载均衡work,lb内置类worker.lbcluster1.sticky_session = 0 ##会话是否绑定worker.lbcluster1.balance_workers = TomcatA, TomcatB ##指定集群拥有实例worker.stat1.type = status ##状态信息
③配置httpd
# vi /etc/httpd/conf/httpd.confLoadModule jk_module modules/mod_jk.so ##加载mod_jk模块Include /etc/httpd/conf/mod_jk.conf ##指定mod_jk配置文件
④测试
输入前端Apache地址查看
刷新后继续查看
前端输入http://localhost/status/查看集群状态
⑤实现会话复制
a.在 <Engine>或 <Host>元素节点下添加以下内容:
# vi /usr/local/tomcat/conf/server.xml
b.在启用集群功能的web应用程序的web.xml中添加<distributable/>以实现集群功能
# vi /usr/local/tomcat/conf/web.xml# cp /usr/local/tomcat/conf/web.xml /usr/local/tomcat/webapps/ROOT/WEB-INF/
详情:
c.测试
输入前端Apache地址查看
刷新后继续查看
TomcatA和TomcatB已经实现了会话共享
四、基于mod_proxy实现
①查看相关代理模块是否装载(其中balancer为集群实现模块)
# httpd -D DUMP_MODULES | grep proxy proxy_module (shared) proxy_ajp_module (shared) proxy_balancer_module (shared) proxy_connect_module (shared) proxy_express_module (shared) proxy_fcgi_module (shared) proxy_fdpass_module (shared) proxy_ftp_module (shared) proxy_http_module (shared) proxy_scgi_module (shared)
②配置httpd
# vi /etc/httpd/conf/httpd.confServerAdmin localhostServerName localhostProxyPass / balancer://cluster1/ stickysession=jsessionidProxyPa***everse / balancer://cluster1/ProxyRequests Off BalancerMember ajp://192.168.10.132:8009 loadfactor=1 route=TomcatABalancerMember ajp://192.168.10.133:8009 loadfactor=1 route=TomcatBProxySet lbmethod=bytraffic
注:
ProxySet lbmethod={byrequests|bytraffic|bybusyness}:负载均衡的实现方式
byrequests:按照请求次数负载均衡(默认)
bytraffic:按照流量负载均衡
bybusyness:安装繁忙程度负载均衡(总是分配给活跃请求数最少的服务器)
③测试
输入TomcatA地址查看:
输入TomcatB地址查看:
输入前端Apache地址查看:
刷新继续查看: