首页 > 其他分享 >Apache2.2.11+Tomcat6.0 集群配置 总结

Apache2.2.11+Tomcat6.0 集群配置 总结

时间:2023-05-12 20:31:46浏览次数:39  
标签:11 tomcat 配置 端口 proxy conf Apache Apache2.2 Tomcat6.0


最近公司需要配置集群 在网上找了很多的资料 都没有怎么个成功 配合网上的资料和一些博客总结如下:

1负载均衡的概念:就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理

2 环境说明(Apache端口:80不需出来 Apache端口:8080 在 Apache安装bin目录下(dos下) 执行httpd -k install)

tomcat-6.0.18免安装版本(zip版)2个
apache_2.2.11-win32-x86-no_ssl.msi:
tomcat的负载均衡需要apache服务器的加入来实现。在进行配置之前请先卸载调已安装的tomcat,然后检查apache的版本。如果版本低于2.2负载均衡的配置要有所不同,因为这个2.2.11和2.2.8版本集成了jk2等负载均衡工具,所以配置要简单许多。别的版本我没有具体测试,有待考究。这两个软件可以到官方网站下载
把Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。服务启动后在浏览器中输入http://localhost进行测试,如果能看到一个"It works!"的页面就代表Apache已经正常工作了。把tomcat解压到任意目录,赋值一个另命名。起名和路径对配置没有影响。但要保证端口不要冲突,如果装有Oracle或IIS的用户需要修改或关闭相关接口的服务。当然jdk的配置也是必须的,这个不再过多叙述。
3 配置步骤
第一步,在Apache安装目录下找到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


第二步, 向下拉动文档找到<IfModule dir_module>节点,在DirectoryIndex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。继续下拉文档找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。



第三步,然后打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上

<VirtualHost *:80> 

ServerAdmin [email protected] 

 ServerName localhost 

 ServerAlias localhost 

 ProxyPass / balancer://sy/ stickysession=jsessionid nofailover=On 

 ProxyPassReverse / balancer://sy/ 

 ErrorLog "logs/sy-error.log" 

 CustomLog "logs/sy-access.log" common 

</VirtualHost>


第四步,然后回到httpd.conf,在文档最下面加上

ProxyRequests Off 

<proxy balancer://sy> 

 BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 

 BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2 

</proxy> 

 

第五步,


分别打开两个tomcat的server.xml配置文件,其中一台可以采用默认的设置,只需要修改两个地方,而另一个要有较大改动以避免与前一台冲突。如果两台不在同一台服务器上运行,对于端口就不需做改动。首先是配置关闭端口,找到<Server port="8005" shutdown="SHUTDOWN">,第一台不变,把第二台改为9005。


第六步,
下面配置server.xml配置文件的Connector端口,找到non-SSL HTTP/1.1 Connector,即tomcat单独工作时的默认Connector,保留第一台默认配置,在8080端口侦听,而把第二台设置为在9080端口侦听。
第七步,
往下找到AJP 1.3 Connector,<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />,这是tomcat接收从Apache过来的ajp连接请求时使用的端口,保留第一台默认设置,把第二台端口改为9009。
第八步,
第一台tomcat的server.xml中找到<Engine name="Catalina" defaultHost="localhost">,去掉这段或改为注释,把上方紧挨的<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">注释符去掉,对于第二台,去掉注释符并把jvm1改为jvm2。
第九步,
第一种:(一般程序配置)
向下找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>,去掉注释,这里的配置是为了可以在集群中的所有tomcat节点间共享会话(Session)。如果仅仅为了获得一个可用的tomcat集群,Cluster只需要这么配置就可以了。
(特殊程序配置-我使用的这个成功在我们的门户网站实现集群)
第二种:

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

 channelSendOptions="6"> 


 <Manager className="org.apache.catalina.ha.session.BackupManager" 

 expireSessionsOnShutdown="false" 

 notifyListenersOnReplication="true" 

 mapSendOptions="6"/> 


 <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 

 <Membership className="org.apache.catalina.tribes.membership.McastService" 

 address="228.0.0.4" 

 port="45564" 

 frequency="500" 

 dropTime="3000"/> 

 <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 

 address="auto" 

 port="5000" 

 selectorTimeout="100" 

 maxThreads="6"/> 


 <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 

 <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 

 </Sender> 

 <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 

 <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 

 <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/> 

 </Channel> 


 <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" 

 filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> 


 <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" 

 tempDir="/tmp/war-temp/" 

 deployDir="/tmp/war-deploy/" 

 watchDir="/tmp/war-listen/" 

 watchEnabled="false"/> 


 <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 

 </Cluster>



第十步,
配置成功后。在webapps目录下新建test目录,在test目录下新建test.jsp文件
在test目录下继续新建WEB-INF目录和web.xml,在<web-app>节点下加入<distributable />,这一步非常重要,是为了通知tomcat服务器,当前应用需要在集群中的所有节点间实现Session共享。如果tomcat中的所有应用都需要Session共享,也可以把conf/context.xml中的
<Context>改为<Context distributable="true">,这样就不需对所有应用的web.xml再进行单独配置。测试代码完成!(test目录在打包文件中)


测试用例:
先启动Apache服务,在先后启动两台tomcat,分别点startup.bat批处理。如果一切顺利的话,就会启动成功。再次访问http://localhost,可以看到小猫页面。访问http://localhost/test/test.jsp。可以看到包括服务器地址,端口,session等信息在内的页面。
然后你可以测试一下容错功能,关闭一个tomcat,看看服务是否正常,然后重启tomcat,关掉另一台tomcat,看看是否也可以继续提供服务。


希望对您有帮助。。。。。

标签:11,tomcat,配置,端口,proxy,conf,Apache,Apache2.2,Tomcat6.0
From: https://blog.51cto.com/u_16091571/6271824

相关文章

  • 5.11
    代码行数:200h学习内容:今天我学习了概率论之前拉下的课程,我学习了方差标准差等收获很多,又看了计算机网络的课遇到问题:我发现自己学习效率很慢,很贪玩,我要注意这一问题今天最难受就是体育课篮球比赛我输了,输球跟我关系很大,最后时刻快攻空蓝不进,没了绝杀球,很难受,落后一分学习计划:......
  • 1011 World Cup Betting
    Withthe2010FIFAWorldCuprunning,footballfanstheworldoverwerebecomingincreasinglyexcitedasthebestplayersfromthebestteamsdoingbattlesfortheWorldCuptrophyinSouthAfrica.Similarly,footballbettingfanswereputtingtheirmoney......
  • win11怎么把当前锁屏用的壁纸提取出来
    1、将c盘隐藏的文件和扩展名打开2、直接打开C:\Users\Administrator\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets将这个文件夹的文件可以拷贝出来重命名为.jpg可以通过时间也确定当前的锁屏壁纸是哪张 ......
  • 1197:山区建小学
     #include<cstdio>#include<cmath>#include<iostream>usingnamespacestd;inta[505][505],c[505][505],f[505][505];intmain(){intm,n;scanf("%d%d",&m,&n);for(inti=1;i<m;++i)scanf(&q......
  • 西门子1500PLC程序 宁德C公司 32组件涂胶PLC程序,硬件配置:1511
    西门子1500PLC程序宁德C公司32组件涂胶PLC程序,硬件配置:1511PLC,三个库卡机器人,一个个PN-COUPLER上下游通讯,滚筒电机,气缸,MES交互,康耐视相机扫码,四轴雅马哈机器人上料,台达伺服,涂胶机,程序完整西门子系列实际项目程序+触摸屏程序+新能源锂电设备故障记录功能,工位CT时间,历史报警,产量统......
  • 《asyncio 系列》11. asyncio 的并发原语(锁、信号量、事件、条件)
    楔子使用多线程和多进程编写应用程序时,需要考虑非原子操作时的竞态条件,因为即使是并发增加整数这样简单的操作也可能导致微妙的、难以重现的bug。而asyncio是单线程的(除非与多线程和multiprocessing进行交互),这是否意味着我们就可以不必考虑竞争条件呢?事实证明,事情并非那么简......
  • win10系统,VC运行库缺失bug(由于找不到MSVCP110.dll,无法继续执行代码)
    bug:由于找不到MSVCP110.dll,无法继续执行代码。重新安装程序可能会解决此问题。bug:由于找不到MSVCP140_CODECVT_IDS.dll,无法继续执行代码。重新安装程序可能会解决此问题。原因分析我昨天清理了c盘,把vc运行库全给删了。今天打开AE,就出现了上面两个提示。那么显......
  • 三菱Q系列plc,11轴标准程序,包含轴回零,相对定位,绝对定位,程序有两轴直线插补,一共有五组
    三菱Q系列plc,11轴标准程序,包含轴回零,相对定位,绝对定位,程序有两轴直线插补,一共有五组插补,整个程序的模块都有,程序框架符合广大编程人员思维,只要弄明白这个程序,一般的项目都不会无从下手,参照这个,做项目不再难,拿着就可用,思路清晰易懂,有触摸屏与电路图。ID:7720663491234814......
  • Mitsubishi/三菱Q系列16轴设备 带个4个QD75运行模块,1个QJ71C24通信模块,1个QJ61BT11N
    Mitsubishi/三菱Q系列16轴设备带个4个QD75运行模块,1个QJ71C24通信模块,1个QJ61BT11N三菱CC-Link模块,多个输入输出模块。含三菱的触摸屏和CAD完整电气图.程序带详细完整的注释。包括:1运行流程控制;2完整的报警;3完善的伺服操作系统;4锁机密码;5生产报表程序;6通信程序。对做几年的电气......
  • oracle11 docker-compose.yml,启动时导入sql文件
    version:'3'services:oracle:image:wnameless/oracle-xe-11g-r2container_name:oracle11gr2environment:-'NLS_LANG=AMERICAN_AMERICA.AL32UTF8'volumes:-"./create.sql:/docker-entrypoint-initdb.d/......