程序员社区

简单的tomcat集群和负载均衡

反向代理负载均衡(如Apache+JK2+Tomcat这种组合)

使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

负载均衡Windows环境
1.mod_jk.so
2.apache-tomcat-9
3.httpd-2.4.33-o102n-x64-vc14.zip
4.jdk-8

以上需要到软件可以在网上下载,推荐在CSDN下载对应文件

一.要先安装好JDK

这一步不详细说,很简单

二.配置好tomcat,修改端口

配置tomcat很简单,不过在集群中需要用到两个相同的tomcat,所以要修改端口号,但是可能改完端口还是不行
此时可以试试:
首先第一个tomcat的配置不用改变
1.增加环境变量CATALINA_HOME2,值为新的tomcat的地址;增加环境变量CATALINA_BASE2,值为新的tomcat的地址。
2.修改新的tomcat中的startup.bat,把其中的CATALINA_HOME改为CATALINA_HOME2
3.修改新的tomcat中的catalina.bat,把其中的CATALINA_HOME改为CATALINA_HOME2CATALINA_BASE改为CATALINA_BASE2。(这里需要把所有的CATALINA_HOMECATALINA_BASE都改)
4.修改conf/server.xml文件,修改端口就好了
示例:https://jingyan.baidu.com/article/adc815139b12def722bf7377.html

三.解压httpd-2.4.33-o102n-x64-vc14.zip

以管理员身份在命令提示符下切换到Apache24\bin
安装到服务httpd -k install
修改conf\httpd.confDefine SRVROOT "/Apache24" Define SRVROOT "主目录"
(不是bin目录,例如E:\httpd\Apache24)
否则启动httpd会报错

四.mod_jk.so

mod_jk.so是需要下载tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip,然后解压得到的
1、把mod_jk.so文件拷贝到Apache24\modules目录下
2、在httpd.conf文件最后添加
Include conf/mod_jk/mod_jk.conf
3、在Apache24\ conf目录建立文件夹mod_jk
4、创建三个文件mod_jk.confworkers2.propertiesurimap.properties

mod_jk.conf内容

#Load mod_jk module.
LoadModule jk_module modules/mod_jk.so
#Where to find workers.properties
JkWorkersFile conf/mod_jk/workers2.properties
JkMountFile conf/mod_jk/urimap.properties
#Where to put jk logs
JkLogFile logs/mod_jk.log
#Set the jk log level[debug/error/info]
JkLogLevel info
#Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
#JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkMount /* loadbalancer

workers2.properties内容

#worker.list=loadbalancer
worker.list=loadbalancer,tomcat1,tomcat2 
#server 列表
#define the first node
worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
#worker.tomcat1.redirect = tomcat1
#define the second node
worker.tomcat2.port=9009
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#worker.tomcat2.redirect = tomcat2
#就是对Tomcat2活动性进行禁用,负载均衡启动的时候,负载都到tomcat1上面去,Tomcat2不参与负载。
#当tomcat1当掉的时候,通过worker.tomcat1.redirect = tomcat2 ,tomcat2就会自己启动起来,接替tomcat1继续工作
#worker.tomcat2.activation = disabled
#Now we define the load-balancing behavior
worker.loadbalancer.type=lb
#mod_jk versions 1.2.7 and up  use balance_workers replaces old balanced_workers 
#worker.loadbalancer.balanced_workers=tomcat1, tomcat2
worker.loadbalancer.balance_workers=tomcat1, tomcat2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=true

urimap.properties内容

*.*=loadbalancer

实现集群

把两个tomcat的conf\server.xml里的
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
的注释放开就可以实现简单的集群了

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 简单的tomcat集群和负载均衡

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区