`
hepx
  • 浏览: 151738 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Tomcat负载均衡和集群配置

    博客分类:
  • web
阅读更多


1、准备
a) Tomcat 6.0.26 解压版。解压到D:\tomcat1和D:\tomcat2
b) Apache2.2.15安装版。安装到D:\apache2.
2、配置
1.1 httpd.conf配置
把下面的注释去掉。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
修改APACHE的配置文件D:\Apache2.2 \conf\httpd.conf
将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用了代理的方法。
     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
然后回到httpd.conf,在文档最下面加上
ProxyRequests Off 
<proxy balancer://cluster> 
       BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
       BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
ProxyRequests Off 是告诉Apache需要使用反向代理,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都是1,Apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。这样就可以使配置更灵活,例如可以给性能好的服务器增加处理工作的比例,如果采取多台服务器,只需要修改ip地址和端口就可以了。route参数对应后续tomcat配置中的引擎路径(jvmRoute)。

1.2、httpd-vhosts.conf设置
接下来进行虚拟主机的设置。APACHE的虚拟主机设置如下:
在文件(extra/httpd-vhosts.conf)最下面加入 
<VirtualHost *:80> 
         ServerAdmin webmaster@dummy-host2.hepx.com(这里是你安装apache填写的)
         ServerName localhost(这里是你安装apache填写的)
         ServerAlias localhost (这里是你安装apache填写的)
         ProxyPass /  balancer://cluster/ stickysession=jsessionid nofailover=On 
         ProxyPassReverse /  balancer://cluster/ 
         ErrorLog "logs/dummy-host2.hepx.com-error.log"
         CustomLog "logs/dummy-host2.hepx.com-access.log" common

 </VirtualHost>
ProxyPass为代理转发的Url,即将所有访问/的请求转发到群集balancer://cluster


2 配置 tomcat 
2.1. 配置 server 的关闭
我们需要在一台机器上跑 2 个不同的 tomcat ,需要修改不同的 tomcat 的关闭口,避免出现端口被占用的情况。
Tomcat_1\conf下的 server.xml中的<Server port="8005" shutdown="SHUTDOWN"> 不作修改保持默认,
Tomcat_2\conf下的server.xml中的<Server port="8005" shutdown="SHUTDOWN"> 修改为: 
<Server port="9005" shutdown="SHUTDOWN"> 

2.2. 配置 Engine
把tomcat_1和tomcat_2下原来的配置注释掉,如下:
<!-- <Engine name="Catalina" defaultHost="localhost"> --> 
把下面一句去掉注释。(jvmRoute的值对应apache/conf/httpd.conf中的BalancerMember的成员)
Tomcat_1: 
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">         
Tomcat_2:
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2"> 

2.3. 配置 Connector 
Connector 是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。也可以用HTTP协议。
tomcat_1不作修改。保持默认。如下:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
tomcat_2修改成:
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
其中的端口对应,tomcat_1 的ajp端口port:8009、tomcat_2 的ajp端口port:9009一定要与apache/conf/httpd.conf的BalancerMember配置的一致。同时也要把保持redirectPort的值唯一。

2.5.配置Cluster(每个tomcat中都要修改)
   向下找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>,去掉注释,这里的配置是为了可以在集群中的所有tomcat节点间共享会话(Session)。如果仅仅为了获得一个可用的tomcat集群,Cluster只需要这么配置就可以了。
3、测试负载均衡和集群
我在tomcat1和tomcat2下的webapps下加入test工程。新建一个index.jsp作为测试页面。在test目录下继续新建WEB-INF目录和web.xml,在<web-app>节点下加入<distributable />,这一步非常重要,是为了通知tomcat服务器,当前应用需要在集群中的所有节点间实现Session共享。如果tomcat中的所有应用都需要Session共享,也可以把conf/context.xml中的
<Context>改为<Context distributable="true">,这样就不需对所有应用的web.xml再进行单独配置。
1、启动服务,测试tomcat(启动顺序:apache、tomcat1、tomcat2)
在浏览器中输入:http://localhost/test/index.jsp如下:
Tomcat负载均衡和集群配置 - hepanxi - hepanxi的博客
同时看到后台的tomcat1打印了信息:如下:
Tomcat负载均衡和集群配置 - hepanxi - hepanxi的博客
我们再刷新一下页面.此时tomcat2打印信息了:如下:
Tomcat负载均衡和集群配置 - hepanxi - hepanxi的博客
我们在页面当中输入内容然后查看后台打印的信息。我们输入如下内容:
Tomcat负载均衡和集群配置 - hepanxi - hepanxi的博客
点击提交看后台打印的信息:(tomcat1打印)
Tomcat负载均衡和集群配置 - hepanxi - hepanxi的博客
我们再回到页面输入tomcat2 ,9090 提交后如下:(tomcat2打印)
Tomcat负载均衡和集群配置 - hepanxi - hepanxi的博客
结果告诉我们两个tomcat之间共享了session的内容
我们在试着停掉其中的一台tomcat,然后再请求。没问题还是可以正常工作的。只是所有工作都交给了这一台tomcat执行了。
总结:是不是很简单。可以动手试试哦!


分享到:
评论

相关推荐

    基于apache的tomcat负载均衡和集群配置_mod jk

    Apache的Tomcat负载均衡与集群配置是Web服务器和应用服务器扩展性能的重要手段,它通过将请求分散到多个服务器上,可以提高系统的响应速度和可用性。在这个过程中,mod_jk模块扮演了关键角色,它是Apache HTTP服务器...

    实现基于nginx的tomcat负载均衡和集群配置

    本篇文章将详细讲解如何使用Nginx作为反向代理服务器来实现对Tomcat应用服务器的负载均衡和集群配置。 首先,我们需要理解Nginx和Tomcat的角色。Nginx是一款高性能的HTTP和反向代理服务器,常用于处理静态内容和...

    基于apache的tomcat负载均衡和集群配置

    在高流量或需要高可用性的情况下,单个Tomcat实例可能不足以处理所有的请求,这时就需要实现负载均衡和集群配置。Apache HTTP Server(通常称为Apache)可以通过其模块mod_jk与Tomcat集成,实现这种功能。 首先,...

    Tomcat均衡负载,集群配置

    Tomcat作为一款广泛应用的Java Servlet容器,其集群配置和负载均衡的实现对于大型系统来说至关重要。本主题将详细探讨如何设置Tomcat的均衡负载和集群配置,以确保服务的高效运行和高可用性。 【描述】: Tomcat的...

    Apache+Tomcat负载均衡与集群配置详解

    配置Apache+Tomcat负载均衡集群,我们需要以下软件和硬件环境: - **软件**: - JRE(JDK)6u3:用于Java应用程序的运行。 - Tomcat 6.0.14:Web应用服务器。 - Apache 2.2.6:作为负载均衡器。 - mod_jk-2.2.4...

    Tomcat负载均衡集群配置

    【标题】:“Tomcat负载均衡集群配置” 在Java Web应用开发中,Tomcat是一个广泛使用的开源Servlet容器。当面临高并发访问或者需要提高系统可用性和容错性时,单个Tomcat服务器可能无法满足需求,这时就需要搭建...

    Mod_Proxy+Apache+Tomcat负载均衡与集群配置

    在当今的企业级应用中,确保系统的高可用性和稳定性是至关重要的。这通常通过建立集群来实现,即通过部署多台服务器来提供相同的服务,以此来...这样,就完成了整个Mod_Proxy+Apache+Tomcat负载均衡与集群的配置过程。

    java基于nginx的tomcat负载均衡和集群

    Java 基于 Nginx 的 Tomcat 负载均衡和集群 在本文中,我们将讨论如何使用 Nginx 实现 Tomcat 的负载均衡和集群。这种方法可以解决 Session 共享的问题,并且可以使多台 Tomcat 服务器共享 Session。 首先,需要...

    Apache,Tomcat负载均衡和集群

    总之,Apache Tomcat的负载均衡和集群配置是提升Web应用程序性能和可靠性的关键步骤。通过合理配置`mod_jk.conf`、`workers.properties`以及`httpd.conf`文件,我们可以实现高效的请求分发、会话共享以及故障转移,...

    Windows+Nginx+Tomcat搭建负载均衡和集群的tomcat压缩包

    本教程将探讨如何在Windows环境中利用Nginx作为反向代理服务器,与多个Tomcat实例配合,搭建一个负载均衡和集群的系统。这个压缩包包含多个版本的Tomcat,即qdky-tomcat-6.0.44.6、qdky-tomcat-6.0.44.5、qdks-...

    Apache 2+Tomcat 6负载均衡与集群配置及性能测试

    Apache 2+Tomcat 6 负载均衡与集群配置是提高Web应用程序可用性和性能的关键技术。通过负载均衡,可以将来自用户的请求均匀分配到多个服务器,避免单点故障,提升系统的整体处理能力。而Tomcat集群则使得多个Tomcat...

    Linux下安装与配置基于nginx的tomcat负载均衡和集群(通过cookie分发请求)

    在Linux环境下,构建基于Nginx的Tomcat负载均衡和集群是提高Web应用程序性能和可用性的常见策略。这里我们将深入探讨如何实现这一目标,特别是通过使用cookie来分发请求。 首先,我们需要理解负载均衡的基本概念。...

    Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册[定义].pdf

    【Linux平台Apache高可用双机集群Tomcat负载均衡集群配置】 在构建高可用性和负载均衡的Web服务环境中,Linux平台上的Apache HTTP Server和Tomcat应用服务器的组合是一种常见且高效的选择。本配置手册主要涉及如何...

    基于apache的tomcat负载均衡与集群

    在配置Apache Tomcat的负载均衡和集群时,可能需要深入理解Tomcat的源码,特别是关于会话管理和集群通信的部分。这有助于定制更符合需求的解决方案。同时,有一些工具可以帮助监控和调试集群,如JConsole、VisualVM...

Global site tag (gtag.js) - Google Analytics