`
xian_hf
  • 浏览: 8365 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache+Tomcat 负载均衡、集群配置

阅读更多

本文是看了几位前辈关于Apache+Tomcat 负载均衡、集群的相关文章整理出的一份以便查阅的文章。

 

有关说明是负载均衡,集群以及他们的优点在这里就不加论述了。

 

在Apache2以前的版本中是没有集成和tomcat通信的jk模块,所以要单独下载mod_jk.so文件,再加以配置

 

准备:apache(1个)、tomcat(2个或2个以上)、mod_jk.so文件

 

这种配置方式见 http://www.iteye.com/topic/615307

 

Apache2之后的版本中集成了mod_jk后配置简单了许多,准备的东西和上面一样。

 

安装好apache后,找到\conf下的httpd.conf  用文本编辑器打开

在110行处将

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

这6行的注释放开(即去掉#)

 

在462行附近把

Include conf/extra/httpd-vhosts.conf 行前的注释放开

 

然后再该文档的最下方加入

ProxyRequests Off 
<proxy balancer://jqname> 
        BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=tomcat1
        BalancerMember ajp://127.0.0.1:7009 loadfactor=1 route=tomcat2
</proxy>

 配置apache的反向代理

 

balancer://jqname 配置在集群中所有的tomcat节点

 

下面配置2个集群的tomcat apache与tomcat通信是通过ajp协议,由于我是在一台机器上部署的2个tomcat

所以这里都是127.0.0.1,后面是ajp通信端口在tomcat里面配置,下面会提到。

 

loadfactor是类似一个权值的东西1:1就是各处理50%的请求,以此类推

 

route对应在tomcat中配置的通道路径

 

这样httpd.conf就配置完毕了

 

 

然后打开\conf\extra下的httpd-vhosts.conf 在最后加入

<VirtualHost *:80> 
         ServerAdmin zhanghaifeng212@yahoo.com.cn
         ServerName  192.168.12.65
         ServerAlias localhost 
         ProxyPass / balancer://jqname/ stickysession=jsessionid nofailover=On 
         ProxyPassReverse / balancer://jqname/ 
         ErrorLog "logs/zhanghf-error.log"
         CustomLog "logs/zhanghf-access.log" common
</VirtualHost>

ServerAdmin 管理员邮箱

ServerName 域名(可以用ip)

ServerAlias 别名

balancer://jqname 需要负载均衡 “jqname” 集群名称,需要和httpd.conf中的集群名称一致

 

httpd-vhosts.conf 配置完毕

 

 

tomcat的配置(这里用的是2个tomcat在同一台机器)

 

分别将tomcat1和tomcat2的conf 中的 server.xml 修改如下

 

在99行附近把

<!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">         
    --> 
放开注释,把下面的<Engine name="Catalina" defaultHost="localhost"> 加上注释;
或直接在这句上加入 jvmRoute节点

 

jvmRoute和httpd.conf中的route保持一致

 

再将107行附近的

<!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->    放开注释

 放开注释,这个是配置集群的,我们测试用的是tomcat 的默认集群配置

 

 

因为我用的是同一台机器放2个tomcat,需要改一个tomcat 的配置 (如tomcat2的server.xml修改如下)

 

22行附近

<Server port="8005改为7005或其他" shutdown="SHUTDOWN">

 

69行附近

 <Connector port="8080改为7080或其他" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 

90行附近

<Connector port="8009改为7009或其他" protocol="AJP/1.3" redirectPort="8443" />

 

这里的ajp端口要和httpd.conf中的端口对应。

 

tomcat配置完毕

 

 

最后将项目分别部署到tomat1,和tomcat2中,启动 apache,tomcat1,tomcat2

 

访问http://localhost/yourProjectName/index.jsp 如果加了后台输出语句即可看到,每次请求是轮流使用

tomcat1和tomcat2,在session中保存几个变量输出,也可看见session的同步。把其中一个tomcat关闭,也不

影响另一个。

 

欢迎大家批判!

 

分享到:
评论
4 楼 xian_hf 2010-03-22  
2、没有看在哪里配置转发哪些类型的请求,原来是这样指定的:JkMount /*.jsp controller,现在在何处配置呢?


这个问题我查了貌似没有配置的地方,我自己做了个测试,如果是请求htmlapache自己就处理了不会分发给tomcat,如果是jsp则分发。这个问题期待大牛解答。
3 楼 lgdlgd 2010-03-22  
我第2点说的是,如何把*.jsp 、*.action请求给tomcat处理,而静态页面如*.jpg等请求直接让apache处理掉?
2 楼 xian_hf 2010-03-22  
,原来是这
lgdlgd 写道
不错,是简单一些,提点建议:
1、下面这几句看着有些糊涂,是不是可重新组织一下。
引用
在99行附近把
Xml代码
<!-- You should set jvmRoute to support load-balancing via AJP ie :  
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">           
    -->  

<!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">        
    --> Xml代码
放开注释,把下面的<Engine name="Catalina" defaultHost="localhost"> 加上注释; 

放开注释,把下面的<Engine name="Catalina" defaultHost="localhost"> 加上注释;Xml代码
或直接在这句上加入 jvmRoute节点 

或直接在这句上加入 jvmRoute节点
jvmRoute和httpd.conf中的route保持一致


2、没有看在哪里配置转发哪些类型的请求,原来是这样指定的:JkMount /*.jsp controller,现在在何处配置呢?



就是在tomcat的server.xml 99行附近的
<Engine name="Catalina" defaultHost="localhost">这个节点加上一个属性

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute的值和httpd.conf中的
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=tomcat1  保持一致
1 楼 lgdlgd 2010-03-19  
不错,是简单一些,提点建议:
1、下面这几句看着有些糊涂,是不是可重新组织一下。
引用
在99行附近把
Xml代码
<!-- You should set jvmRoute to support load-balancing via AJP ie :  
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">           
    -->  

<!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">        
    --> Xml代码
放开注释,把下面的<Engine name="Catalina" defaultHost="localhost"> 加上注释; 

放开注释,把下面的<Engine name="Catalina" defaultHost="localhost"> 加上注释;Xml代码
或直接在这句上加入 jvmRoute节点 

或直接在这句上加入 jvmRoute节点
jvmRoute和httpd.conf中的route保持一致


2、没有看在哪里配置转发哪些类型的请求,原来是这样指定的:JkMount /*.jsp controller,现在在何处配置呢?

相关推荐

    apache+tomcat+jk 均衡负载和集群

    Apache+Tomcat+JK是一个常见的Web服务器和应用服务器集群解决方案,用于实现负载均衡和高可用性。这个配置中,Apache作为前端反向代理服务器,Tomcat作为后端的应用服务器,而JK模块是Apache与Tomcat之间的连接器,...

    apache+tomcat负载均衡_proxy模式

    内附完整配置教程和修改后的apache的httpd.conf文件和tomcat的server.xml配置文件,包含test测试项目,不包含apache和tomcat安装文件。 本教程参考网上资料,本机测试成功,如有问题可以私信说明。

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

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

    Apache+tomcat负载均衡

    在这个配置中,`&lt;Proxy&gt;`指令定义了一个名为"mycluster"的负载均衡集群,包含两个成员(t1和t2),分别对应本地和另一台服务器上的Tomcat实例。`lbmethod=byrequests`表示按请求数进行负载分配。`ProxyPass`和`...

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat+Linux集群和均衡负载(Session同步复制

    Apache+Tomcat服务器集群配置详细步骤

    ### Apache+Tomcat服务器集群配置详细步骤 #### 一、引言 在现代Web开发中,随着业务规模的不断扩大和用户需求的日益增长,单一服务器往往难以满足高性能、高可靠性的要求。为了应对这一挑战,通常采用Apache+...

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

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

    Apache+Tomcat+Linux集群和负载均衡

    ### Apache+Tomcat+Linux集群和负载均衡 在IT领域,Apache+Tomcat+Linux集群与负载均衡技术是实现...通过以上步骤,我们可以成功搭建一套基于Apache+Tomcat+Linux的负载均衡集群环境,有效提升Web应用的性能和稳定性。

    apache + tomcat 负载均衡worker模式初探

    阅读这份手册可以帮助你深入理解Apache + Tomcat负载均衡worker模式的配置和管理,确保系统稳定高效地运行。 总的来说,Apache + Tomcat的负载均衡worker模式通过合理调度请求,能够有效地提升服务的可用性和响应...

    Apache+Tomcat+JK 实现集群负载均衡文档

    Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...

    apache+tomcat负载均衡整合文档

    以下是实现Apache+Tomcat负载均衡整合的详细步骤: 1. **安装与配置Apache**: - 安装Apache HTTP服务器,并确保已启用mod_proxy、mod_proxy_balancer和mod_proxy_http模块。这些模块通常在默认的Apache安装中已经...

    jk+apache+tomcat整合 负载均衡 集群

    jk+apce+tomcat 整合 实现tomcat负载均衡 tomcat集群。让tomcat处理.jsp动态页面,apache处理静态页面。平且实现在一个IP下提供多个站点服务。 里面包括怎样配置apache虚拟机文件 怎样配置tomcat的虚拟机文件 花了我...

    apache+tomcat集群配置

    本文详细介绍了 Apache + Tomcat 集群配置的每一步骤,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。通过遵循本文的配置步骤,可以成功地配置 Apache...

    Apache Tomcat 负载均衡

    Apache Tomcat负载均衡是分布式系统中关键的一环,旨在通过分散服务器请求,提高系统的可用性和响应速度,同时增强系统的容错能力。本文将基于提供的文件信息,深入解析Apache Tomcat负载均衡的配置与实现机制。 ##...

    tomcat+apache+jk集群和负载均衡

    在IT领域,特别是Web服务架构中,通过使用Tomcat、Apache和JK代理模块实现集群与负载均衡是一种常见的优化策略,旨在提升系统性能、稳定性和可用性。以下是对标题“tomcat+apache+jk集群和负载均衡”以及描述...

    nginx+tomcat负载均衡集群思路步骤过程.docx

    【Nginx+Tomcat负载均衡集群部署】 在IT领域,构建高可用和高并发的Web服务是至关重要的。Nginx与Tomcat的组合是一个常见的解决方案,因为Nginx作为反向代理和负载均衡器,能有效分发流量到多个后端Tomcat服务器,...

Global site tag (gtag.js) - Google Analytics