`

Apache HttpServer + Tomcat实现集群和负载均衡配置详解(1)——Apache HttpServer配置

阅读更多

原文:http://zyycaesar.iteye.com/blog/294089 

我收藏并且做了排版和内容的少许修改,加上了自己配置过程中的一些感悟。

一、软件准备

 

Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本(这里我和原作者使用的并不一样,我使用的是httpd-2.2.17-win32-x86-openssl-0.9.8o.msi的版本,但是按照原作者的配置达到了同样的效果。所以有无SSL貌似都可以实现集群和负载均衡。)

 

Tomcat 6.0 : http://tomcat.apache.org/download-60.cgi,下载Tomcat 6.0.18 zip文件.(这里我使用的是apache-tomcat-6.0.30-windows-x86.zip版本。)

 

注意:由于Apache和Tomcat项目与集群相关的模块均处于持续发展和优化过程中,因此笔者不保证本文配置方法对所有Apache和Tomcat版本均适用。

 

二、软件安装

 

     把Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。对于已安装IIS的机器,在启动Apache服务之前必须首先停止IIS Admin服务,不然会因为端口冲突而无法启动。服务启动后在浏览器中输入http://localhost进行测试,如果能看到一个"It works!"的页面就代表Apache已经正常工作了。(在这一步中安装了ORACLE数据库的机子输入loacalhost可能打开的是ORACLE自带的那个Apache服务器,所以如果出现的是ORACLE自带的Apache服务器的欢迎页面,就去服务里把OracleOraHome92HttpServer这个服务改成手动启动。这样就不会出现争用80端口的情况了。)

 

     解压tomcat zip文件到两个文件夹,分别为t1和t2,以下均以t1和t2代表两个tomcat服务器。配置JAVA_HOME和CLASSPATH系统环境变量(其实就是要把JDK装好环境变量配置好),分别启动t1和t2,确保tomcat可用,然后关闭tomcat。(这里为了做实验只用两个tomcat其实用几个都是同理,把tomcat的zip文件解压到一个固定目录里就行。比如我在D盘下建立了一个名为TestTomcatCluster的文件夹,两个解压好的tomcat根目录分别改名为tomcat_1和tomcat_2依次类推。然后在环境变量里新建环境变量,如为tomcat_1建立名为TOMCAT1_HOME 值为 D:\TestTomcatCluster\tomcat_1和为tomcat_2建立名为TOMCAT2_HOME值为D:\TestTomcatCluster\tomcat_2的环境变量,并且在classpath中添加%TOMCAT1_HOME%\bin;和%TOMCAT2_HOME%\bin;然后双击各个bin文件夹里的startup.bat文件就可以启动zip版本的tomcat服务器了。)

 

     本文仅为讲解配置过程,Apache和tomcat均工作在同一台机器上。实际部署时没有任何限制,Apache和单个tomcat可以分别部署在不同的服务器上。

 

三、Apache配置

 

     Apache 2.2集成了mod_jk功能,相对于1.3版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化。

    (对于老版本的Apache和老版本的tomcat配置可以参照这篇文章http://hi.baidu.com/luodaijun/blog/item/5bbe4cfb5ffef864034f56a1.html

     (1)首先,在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

 

     (2)向下拉动文档找到<IfModule dir_module>节点,在DirectoryIndex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。

 

    (3) 继续下拉文档找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。

 

    (4) 用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上

 

     <VirtualHost *:80> 
         ServerAdmin 管理员邮箱
         ServerName 域名(没有可用IP地址代替)
         ServerAlias localhost 
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On 
         ProxyPassReverse / balancer://cluster/ 
         ErrorLog "logs/lbtest-error.log"
         CustomLog "logs/lbtest-access.log" common
     </VirtualHost>

 

     这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,两个日志引擎ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取,笔者取为lbtest。httpd-vhosts.conf配置完毕。

 

     (5)回到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需要使用反向代理(利用Apache进行负载均衡必须使用反向代理,关于更多负载均衡和反向代理详情可以参阅笔者另一篇博客http://zyycaesar.iteye.com/admin/blogs/293839),<proxy balancer://cluster>用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。Apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都是1,Apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径(jvmRoute)。

 

    重启Apache服务,如果此时访问http://localhost/将会返回503错误,打开刚才配置的错误日志logs/lbtest-error.log,可以看到错误原因是因为后台服务器没有响应,因为此时tomcat尚未配置和启动。

 

分享到:
评论

相关推荐

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

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

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

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

    apache_server+Tomcat7集群负载均衡session共享

    Apache服务器和Tomcat7集群是企业级Web应用的常见架构,用于实现高可用性和高性能。在这样的设置中,Apache作为前端服务器,通过反向代理和负载均衡策略将请求分发到后端的多个Tomcat实例,以提高服务的处理能力和...

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

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

    Apache和Tomcat实现集群和负载均衡(WindowsNT)

    ### Apache和Tomcat实现集群和负载均衡(Windows NT) #### 软件环境 为了实现Apache与Tomcat的集群及负载均衡,在Windows NT环境下需要准备以下软件环境: 1. **Apache**: 版本2.0.55。可以从官方网站...

    Apache Http Server与Tomcat实现负载均衡和集群

    总结来说,Apache Http Server与Tomcat的组合使用,通过mod_jk模块进行负载均衡和集群配置,可以实现高效且可靠的Web服务。理解并熟练掌握这些配置文件的用法对于构建高可用、高性能的Java Web环境至关重要。

    Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程

    在Linux环境中,使用Apache、Tomcat和JK模块实现负载均衡和群集是一项常见的高可用性架构设计,它能够有效地分发网络流量,提高系统的可扩展性和稳定性。Apache作为前端Web服务器,负责接收用户请求并根据配置策略将...

    Apache+Tomcat+JK配置负载均衡

    Apache+Tomcat+JK配置负载均衡是Web服务器与应用服务器集群的一种常见组合,用于实现高可用性和高并发处理能力。Apache作为前端服务器,通过JK模块(mod_jk)与后端的Tomcat应用服务器进行通信,将HTTP请求分发到多...

    Nginx+keepalived+tomcat实现性负载均衡(包含需要的包)

    在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...

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

    Apache+Tomcat负载均衡与集群配置是提升Web应用性能和高可用性的重要手段。这篇文章将详细介绍如何使用Apache作为前端负载均衡器,与多台Tomcat服务器配合构建集群环境。 首先,我们要理解负载均衡的基本概念,它是...

    实现apache+tomcat集群和负载均衡的比较

    总之,Apache+Tomcat集群和负载均衡的实现能够显著提升Web服务的可用性和性能,通过灵活选择负载均衡策略和模块,可以适应各种复杂的业务场景。在实际操作中,还需要不断调整和优化,以达到最佳的效果。

    Apache+Tomcat集群和负载均衡的资料

    ### Apache+Tomcat集群与负载均衡配置详解 #### 一、环境说明 为了实现Apache与Tomcat集群的负载均衡,我们需要准备以下环境: 1. **服务器配置**:四台服务器,其中一台安装Apache,三台安装Tomcat。 - Apache...

    Apache+Tomcat集群的负载均衡配置文件和测试文件

    本主题聚焦于"Apache+Tomcat集群的负载均衡配置",通过Apache作为前端代理服务器,对后端的多个Tomcat实例进行负载分发,以实现高可用和高性能的服务。 首先,我们要理解负载均衡的基本概念。负载均衡是指将流入的...

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

    最后,通过Apache HTTP Server将用户请求分发到Tomcat集群的不同节点上,利用mod_proxy模块来配置反向代理,将请求转发到后端的Tomcat实例。这样,就完成了整个Mod_Proxy+Apache+Tomcat负载均衡与集群的配置过程。

    Windows下Apache2.2+Tomcat6配置集群、负载均衡、session共享

    在Windows环境下,Apache2.2和Tomcat6的组合是一个常见的Web服务器架构,用于搭建集群、实现负载均衡和处理session共享。Apache作为前端反向代理服务器,负责分发请求到后端的多个Tomcat实例,以提高应用的可用性和...

Global site tag (gtag.js) - Google Analytics