Apache2.4+Tomcat7的负载均衡配置

第一部分——下载

1.1: 百度搜索apache httpd关键字,第一个链接既是官方下载地址。如果这一步不会,此篇文章不适合你阅读,请自行停止。

1.2:进入官网http://httpd.apache.org/,点击左边菜单download链接进入下载页,选择稳定版最新版httpd2.4.26

 

 1.3 点击windows下载链接

 1.4 点击ApacheHaus链接

1.5 根据自己电脑位数选择下载包,我选择的是windows 64位的下载包

 1.6 下载完成后名字为httpd-2.4.26-x64-vc14.zip,解压后,

进入httpd-2.4.26-x64-vc14\Apache24\bin目录,看到了启动集群程序的httpd.exe,

和httpd-2.4.26-x64-vc14\Apache24\conf目录下,看到了集群配置文件httpd.conf

至此,下载完成。

第二部分——启动

 2.1 编辑C:\Windows\System32\drivers\etc\hosts文件,用文本编辑器打开hosts,添加新的两行IP映射:

127.0.0.1   www.joyce.com
localhost    www.joyce.com

 2.2 httpd-2.4.26-x64-vc14\Apache24\conf\httpd.conf 修改如下:

修改SRVROOT变量为实际路径:

修改集群监听IP及端口: ServerName  www.joyce.com:80

修改log日志文件名: ErrorLog  "logs/httpd-error.log"  (非常重要!启动中除了80端口被占用错误不能被记录其中,其它所有错误都记录其中!尤其是httpd.exe启动窗口一闪而过问题。起一个与众不同的名字,方便在不知道log日志具体位置的时候,全局查找。 如果发现80端口被占用,请参考文章: http://www.cnblogs.com/gsls200808/p/4506301.html  )

 2.3 选择集群策略。放开以下XXX.so注释,方便添加集群tomcat

复制代码
1 ##############################################################################
2 #       以下3种负载均衡策略,只开放一种即可
3 ##############################################################################
4 #按照繁忙程度,总是给活跃请求数最少的服务器
5 LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
6 #按照请求次数
7 LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
8 #按照流量均衡
9 LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
复制代码
复制代码
1 ##############################################################################
2 #       以下是代理相关及ajp协议相关的功能模块,使session共享
3 ##############################################################################
4 LoadModule proxy_module modules/mod_proxy.so
5 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
6 LoadModule proxy_connect_module modules/mod_proxy_connect.so
7 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
8 LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
复制代码

2.4 双击D:\jiqun\Apache24\bin\httpd.exe,打开一个窗口并且不关闭,则集群服务器启动成功。

 

鼠标会一直闪啊闪,并且黑色窗口不关闭。

 2.5 验证启动成功,在浏览器地址栏输入www.joyce.com展示如下:

 

第三部分  tomcat集群例子

3.1 准备两个集群tomcat。我这里用的是apache-tomcat2-8.0.44,由于是集群本机运行,需要不同的tomcat分别设置不同端口,确保其正常运行:

 准备两个tomcat进行集群测试。

3.2 修改集群tomcat端口及jvmRoute

第一个集群tomcat: 修改apache-tomcat1-8.0.44\conf\server.xml端口以及配置:

修改Server port为8001:                      <Server port="8001" shutdown="SHUTDOWN">

修改HTTP端口为8002:                        <Connector port="8002" protocol="HTTP/1.1"

修改AJP集群用到的端口为50001:       <Connector port="50001" protocol="AJP/1.3" redirectPort="8443" />

增加集群用到的jvmRoute="tomcat1":                    <Engine name="Catalina" defaultHost="localhost"  jvmRoute="tomcat1">

第二个集群tomcat: 修改apache-tomcat2-8.0.44\conf\server.xml端口以及配置:

修改Server port为8003:                      <Server port="8003" shutdown="SHUTDOWN">

修改HTTP端口为8004:                        <Connector port="8004" protocol="HTTP/1.1"

修改AJP集群用到的端口为50002:       <Connector port="50002" protocol="AJP/1.3" redirectPort="8443" />

增加集群用到的jvmRoute="tomcat2":                    <Engine name="Catalina" defaultHost="localhost"  jvmRoute="tomcat2">

3.3 修改集群配置文件httpd.conf。修改D:\jiqun\Apache24\conf\httpd.conf,在最末尾处添加:

1 ProxyPass /distributed balancer://cluster01/ stickysession=JSESSIONID
2 ProxyPassReverse / balancer://cluster01/
3 <proxy balancer://cluster01>
4     BalancerMember ajp://www.joyce.com:50001/distributed loadfactor=1 route=tomcat1
5     BalancerMember ajp://www.joyce.com:50002/distributed loadfactor=1 route=tomcat2
6 </proxy>

3.4 集群tomcat session共享

当我们需要多个tomcat集群,并且tomcat之间共享session时,需要做如下配置:

1,在tomcat配置文件server.xml中以下这行代码放开注释:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

2,要在要将web.xml文件<web-app>元素的最后加上: <distributable/>   两个地方的web.xml,一个是应用程序的WEB-INF\web.xml,另一个是tomcat/conf/web.xml(不知道有没有用,反正我加上了)

3.5 添加分布式应用程序。在两个tomcat下模拟增加application应用程序:

在apache-tomcat1-8.0.44\webapps和apache-tomcat2-8.0.44\webapps两个目录下新建myapp文件夹,代替我们的发布应用,两个myapp文件夹下新建index.jsp内容为:

复制代码
<html>
    <head>
      <title>helloapp</title>
    </head>
<body>
    <h2>tomcat2</h2> <br/> <br/>
    <% System.out.println("call index.jsp"); %>   
    SessionID: <%=session.getId() %>  
</body>
</html>
复制代码

各自取名tomcat1和tomcat2

3.6 验证集群以及session共享

tomcat2的session是 *AA39F

tomcat1的session是 *AA39F ,说明两个tomcat  session共享成功,虽然sessionid 的 .tomcat1后缀表明该session来自服务器tomcat1,但你提交的写入session中的属性值仍然可以读出。

验证成功!集群部署成功!session共享成功!

集群项目管理文档截图:

 

I am a girl, my name is Joyce. If you want to contact to me, please send any to email 179657283@qq.com, I will reply you.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概念: AJP是Apache提供的完成与其它服务器通讯的一种协议。在Apache中通过mod_proxy_ajp模块发送AJP数据,另外一端的服务器需要实现AJP协议,能够接受mod_proxy_ajp模块发送的AJP协议数据,在接受到AJP协议数据后做适当处理,并能够将处理结果以AJP协议方式发送回给mod_proxy_ajp模块。 配置过程: 1 安装apache 2 测试apache是否安装成功:http://localhost 出现It works! 3 解压、安装tocmat 4 测试tocmat是否安装成功:http://localhost:8080 5 配置tocmat的jdk: 打开startup.bat添加: rem ----------------------------------------------------JDK目录 SET JAVA_HOME=D:\progam\jdk160_05 rem ----------------------------------------------------解压后Tomcat的目录 6 复制tocmat,名字为tomcat2 7 apache 整合tomcat 1)modules目录下添加模块:jk mod_jk-1.2.26-httpd-2.2.4.so 2)修改conf/httpd.conf 最后一行添加: include conf/mod_jk.conf 3)在conf目录下创建mok_jk.conf 内容: #加载mod_jk Module LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties #指定哪些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名 JkMount /*.jsp controller 4)在confi目录下创建workers.properties 内容为: worker.list = controller,tomcat1,tomcat2 #========tomcat1======== worker.tomcat1.port=8009 worker.tomcat1.host=192.168.9.210 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #加权因子 越大执行的请求越多 #========tomcat2======== worker.tomcat2.port=9009 worker.tomcat2.host=192.168.9.210 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #========controller,负载均衡控制器======== worker.controller.type=lb worker.controller.balanced_workers=tomcat1,tomcat2 worker.controller.sticky_session=1 5 修改tomcat的端口号(3处) <Server port="8005" shutdown="SHUTDOWN"> 改为: <Server port="9005" shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> 改为: <Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/> 改为: <Connector port="9009" protocol="AJP/1.3" redirectPort="8443"/> 注意:该处需要与worker.tomcat2.port=9009对应 6 修改jvmRoute 备注与worker.list = controller,tomcat1,tomcat2的tomcat1或tocmat2对应 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值