提醒:配置好之后在测试的时候必须保存session在不同的应用服务器(tomcat,jboss,weblogic等)的复制。
配置工具官方下载地址:http://httpd.apache.org/download.cgi(百度有安装教程,该中间在windows下配置负载均衡比较稳定)
负载均衡就是把所有用户的访问压力分散到多台服务器上,也可以分散到多个tomcat里。
首先创建一个Web项目,在项目的web.xml中需要加上以下配置,表明该应用可多应用分流处理,能进行session的复制。
TomcatClusterDemo
服务端要使用几个tomcat进行负载就配置几个tomcat服务的启动。
将两个web项目放到tomcat1,tomcat2的webapps目录下,确认通过tomcat1,tomcat2来进行分流,这两个tomcat的端口,AJP等配置要不一样。
connectionTimeout="20000" redirectPort="8443" /> 1,在Apache安装目录下找到Apache24/conf/下的 httpd.conf,去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so 2,去掉Include conf/extra/httpd-vhosts.conf前面的注释 #(打开conf文件下extra文件的虚拟主机---httpd-vhosts.conf) Apache虚拟主机配置的作用:现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录(方法-基于IP配置,基于域名配置,端口配置) 3,在httpd.conf文档最下面加上一下代码: ProxyRequests Off BalancerMember ajp://172.16.X.X:20001/ loadfactor=1 route=jvm1 BalancerMember ajp://172.16.X.X:20002/ loadfactor=1 route=jvm2 ProxyPass / balancer://mycluster/ 解释值: 172.16.X.X是tomcat服务器的IP,端口号对应tomcat中server.xml里的ajp的端口号,route对应jvmRoute的配置。 # 警告:以下这段配置仅用于调试,绝不要添加到生产环境中!!! # 是用来监视负载均衡的工作情况的,调试时可以加上(生产环境中禁止使用!),然后访问 http://localhost/balancer-manager/ 即可看到负载均衡的工作状况。 SetHandler balancer-manager order Deny,Allow Deny from all Allow from localhost 详解: -- 172.16.X.X:20001 和 172.16.X.X:20002 是当前本机地址+端口号 -- 从 ProxyRequests Off 可以看出,负载均衡器就是一个反向代理,只不过它的代理转发地址不是某台具体服务器,而是一个balancer:// 协议 -- ProxyPass / balancer://mycluster协议地址可以随便定义 -- loadfactor 表负载均衡比例划分,取值参数范围1-100 用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上以下代码: ServerName 127.0.0.1 ServerAlias localhost ProxyPass / balancer://mycluster/ stickysession=jsessionid nofailover=On ProxyPassReverse / balancer://mycluster/ ErrorLog "logs/lbtest-error.log" CustomLog "logs/lbtest-access.log" common --------------------- 将两个web项目放入tomcat1和tomcat2中,重启apache,tomcat1,tomcat2 页面多刷新几次,可以尝试轮流关闭tomcat来进行测试 测试本机地址:1270.0.1+对应tomcat中webapp下的相对路径 测试其他:ip地址+对应tomcat中webapp下的相对路径 如果将web项目部署到两个或多个tomcat中,两个tomcat可以随机打印内容到控制台,就说明apache负载均衡配置成功。 80端口是默认端口,将80端口修改成8090或者8080就要显示的通过ip+端口号去调用,不修改直接通过ip访问,因为默认访问的端口就是80。 tomcat2的servel.xml配置:
修改apache的httpd.conf文件
配置虚拟站点
运行
项目常用部署负载均衡的四种方式