反向代理负载均衡(如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_HOME2
,CATALINA_BASE
改为CATALINA_BASE2
。(这里需要把所有的CATALINA_HOME
和CATALINA_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.conf
的Define 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.conf
、workers2.properties
和urimap.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"/>
的注释放开就可以实现简单的集群了