Tomcat+Apache集群配备

Tomcat+Apache集群配置

2010-06-20

Tomcat+Apache集群配置

文章分类:Java编程

环境:

操作系统:WindowXP

应用服务器:Tomcat6.0.18,Apace2.2.15

JDK版本:JDK6

一、 前期准备

从http://www.apache.org官方网站下载下面两款软件

APAHCE 2.2.15下载:apache_2.2.15-win32-x86-no_ssl.msi

TOMCAT6.0.18下载:apache-tomcat-6.0.18.zip直接解压。

二、 安装过程

APAHCE安装目录:C:\Program Files\Apache Software Foundation\Apache2.2

两个TOMCAT目录:自行解压到C盘下。分别为 tomcatA,tomcatB

三、 配置Apache

1、 Apache集群配置

1.1、 httpd.conf配置

修改APACHE的配置文件C:\Program Files\Apache Software Foundation\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_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

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule status_module modules/mod_status.so

再找到<IfModule dir_module></IfModule>加上index.jsp修改成

<IfModule dir_module>

DirectoryIndex index.html index.jsp

</IfModule>

1.1.1、 在最下面加入

ProxyRequests Off

<proxy balancer://cluster>

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

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

</proxy>

ProxyRequests Off 是告诉Apache需要使用反向代理(利用Apache进行负载均衡必须使用反向代理)

BalancerMember为群集balancer://cluster的成 员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。

<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)。

注:

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。

正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。

反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。

反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。

另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。

1.2、 httpd-vhosts.conf设置

接下来进行虚拟主机的设置。APACHE的虚拟主机设置如下:

首先要修改 conf/httpd.conf找到(#Include conf/extra/httpd-vhosts.conf)

把注释去掉。

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

在文件(extra/httpd-vhosts.conf)最下面加入

<VirtualHost *:80>

    ServerAdmin josenxu001@gmail.com

    ServerName localhost

    ServerAlias localhost

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

    ProxyPassReverse / balancer://cluster/

    ErrorLog “logs/localhost-error.log”

    CustomLog “logs/localhost-access.log” common

</VirtualHost>

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

    这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名(可以随意取),

两个日志引擎ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取

2、 配置 tomcat

2.1. 配置 server 的关闭

我们需要在一台机器上跑两个不同的 tomcat ,需要修改不同的 tomcat 的关闭口,避免出现端口被占用的情况。其中tomcatA用默认值,不修改。修改tomcatB\conf下的 server.xml将:

<Server port=”8080″ shutdown=”SHUTDOWN”>

改为

<Server port=”8081″ shutdown=”SHUTDOWN”>

2.2. 配置 Engine

把原来的配置注释掉,把下面一句去掉注释。并标明jvmRoute=”jvm2″.

<Engine name=”Standalone” defaultHost=”localhost” jvmRoute=”jvm2″>  

以下是原来的配置。

<!– <Engine name=”Catalina” defaultHost=”localhost”>  –>

tomcatB也要同样 配置。注意:jvmRoute配置不要一样。

<Engine name=”Standalone” defaultHost=”localhost” jvmRoute=”jvm2″> 

2.3. 配置 Connector

原来的默认配置。

&

Tomcat+Apache集群配备

相关文章:

你感兴趣的文章:

标签云: