设为首页 收藏本站
查看: 1357|回复: 0

[经验分享] Linux下Apache与Tomcat的完全分布式集群配置(负载均衡)

[复制链接]

尚未签到

发表于 2018-12-7 13:52:14 | 显示全部楼层 |阅读模式
  最近公司要给客户提供一套集群方案,项目组采用了Apache和Tomcat的集群配置,用于实现负载均衡的实现。
  由于以前没有接触过Apache,因此有些手生,另外在网上搜寻了很多有关这方面的集群文章,但是没有一篇是可以从头到尾,配置可以成功的,或者是文件不全,解释不清等。
  博主本人希望借这个机会,自己总结一份,用于分享使用。
  本集群采用ajp的方式来实现,方法简单易懂。实际上对于这种集群的配置,无非就是把需要的软件等下载后,修改相应的配置文件,最后依次启动即可。
  这里我把需要的应用软件和相应的配置文件贴出,大家可以对比自己的文件是否匹配。
  事先说明下,本人做的是完全分布式集群,也就是真正的在不同的虚拟机上做的操作。并不是在同一台机器上做的,因此如果各位在同一台机器上做该操作的话,不建议采纳。
  三台机器:
  系统:CentOS 5.x
  主节点:192.168.1.101
  子节点1:192.168.1.151
  子节点2:192.168.1.152
  1. 需要用到的软件:(具体安装步骤无需描述)
  apache 2.2.25  安装在主节点上     /opt/apache2
  apache-tomcat-6.0.37 安装在子节点1和子节点2上   /opt/apache-tomcat-6.0.37
  2.配置文件
  apache安装后,需要注意三个地方需要修改:

  1)ServerName localhost:80  该localhost为本地主机名,该主机名为hosts文件所显示的名字,配置错误的话,会出现   httpd:Could not>  2)在文件的最后需要配置以下文本,用于控制集群的成员。

  •   ProxyPass /images !
  •   ProxyPass /css !
  •   ProxyPass /js !
  •   ProxyRequests Off
  •   ProxyPass /test balancer://mycluster/ stickysession=JSESSIONID
  •   ProxyPa***everse /test balancer://mycluster/ stickysession=JSESSIONID
  •   
  •   BalancerMember ajp://192.168.1.152:8009/test/ loadfactor=1
  •   BalancerMember ajp://192.168.1.151:8009/test/ loadfactor=1
  •   
  该配置为Apache的反向代理,用于通过apache去访问tomcat项目。test为博主的项目Context,两个BalanceMember是集群中的成员。8009端口是tomcat的ajp端口名。
  上述修正:昨天在进行试验的时候疏忽了这块,今天在公司试验的时候才发现。大家一定要注意下,BalancerMember一行中的route=worker1和route=worker2都不能加上,一旦加上的话,就不会通过apache的指定去进行分布的访问了,因此这里一定要去掉。否则的话,只会在一个tomcat容器中进行操作。
  最后的下面balancer-manager是用于查看负载均衡运行情况的路径配置。
  该文本需要添加在

  •   
  •   SSLRandomSeed startup builtin
  •   SSLRandomSeed connect builtin
  •   
的上面。  3)最后还需要在

  •   ProxyPass /images !
  •   ProxyPass /css !
  •   ProxyPass /js !
的上面加入下面配置:

  •   
  •   SetHandler server-status
  •   Order Deny,Allow
  •   Deny from all
  •   Allow from all
  •   
  •   
  •   SetHandler balancer-manager
  •   Order Deny,Allow
  •   Deny from all
  •   Allow from all
  •   
  有的朋友在网上找到的文章,配置的都正确,但是最后发现服务都可以启动,并且可以访问,但是没有实现负载均衡的效果,只是在单个节点上运行。
  本人也是遇到了这种问题,最后找了很长时间,才发现需要引入上面配置。
  至此为止,apache的配置就完成了,下面进行tomcat的配置。
  3.Tomcat配置文件
  首先说一点,Tomcat也只是配置一个文件,就是server.xml。并且里面的端口无需改动,因为是在真正的分布式中来实现的。只需要修改一个地方,就是Engine节点。
  在之前的Engine节点上,加入一个属性jvmRoute,值是刚才我们提到的worker1或worker2,具体配置如下:

  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  上面的配置是我们提到的worker2的配置,是在子节点2上配置的,如果在子节点1上,则只需要将其改成worker1,另外还要把Receiver的address修改成当前所在机器的IP地址。
  最后把所要操作的项目放到tomcat的webapp下,另外项目本身的web.xml文件中,需要引入元素。
  至此为止,Tomcat的配置也完成了。
  4.启动测试
  启动的顺序在网上看到五花八门,本人自己测试是需要先启动Apache,然后依次启动Tomcat子节点。
  测试的地址  http://192.168.1.101:80/test
  测试查看的负载均衡情况地址   http://192.168.1.101:80/balancer-manager
  测试方法:我们可以在项目的index.jsp文件最后加入一段打印,如:

  •   
  这样的话,我们开启两个tomcat的控制台去观察,如果在通过apache访问web地址以后,两个节点的控制台是交替打印的,则说明配置成功。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-644380-1-1.html 上篇帖子: 从JVM的常见异常来看Tomcat中内存的设置 下篇帖子: 解决tomcat占用CPU过高
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表