tomcat +apache 配置集群

APACHE2.2.25+TOMCAT6.0.37配置负载均衡

目标:

使用 apache 和 tomcat 配置一个能够应用的 web 网站,要达到如下要求:css

1.   Apache 作为 HttpServer ,后面链接多个 tomcat 应用实例,并进行负载均衡。html

2.   为系统设定 Session 超时时间,包括 Apache 和 tomcatweb

3.   为系统屏蔽文件列表,包括 Apache 和 tomcatapache

注:本例程以一台机器为例子,即同一台机器上装一个apache和4个Tomcat。windows

1、前期准备工做:安装用的程序(前提保证已安装了JDK1.5以上的版本)

APAHCE 2.2.25下载:httpd-2.2.25-win32-x86-no_ssl.msitomcat

TOMCAT6.0.37下载:apache-tomcat-6.0.37-windows-x64.zip直接解压。服务器

2、安装过程

APAHCE安装目录:D:\Apache。session

四个TOMCAT目录:自行解压到(D:\Tomcat集群服务器\)下。分别为 tomcat1,tomcat2,tomcat3,tomcat4负载均衡

这几个安装过程就不详细说明了。jvm

3、配置

一、Apache配置

1.一、httpd.conf配置

修改APACHE的配置文件D:\Apache \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

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

<IfModule dir_module>

DirectoryIndex index.html index.jsp

</IfModule>

1.1.一、  在最下面加入

<proxy balancer://cluster>

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

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

BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm3

BalancerMember ajp://127.0.0.1:9005 loadfactor=1 route=jvm4

</proxy>

上面的四个BalancerMember成员是咱们配置的tomcat集群。后面会说明的。

1.二、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 360293650@qq.com

         ServerName localhost

         ServerAlias localhost

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

         ProxyPassReverse / balancer://cluster/

</VirtualHost>

其中的域名和路径根据你本身状况设置

而后再设置TOMCAT虚拟主机

2 配置 tomcat

参数参考表

可先看后面的步骤在回头查看参考表,或者根据本身的端口使用状况本身定义端口的分配。

Tomcat

Service.

port

Engine.

jvmRoute

Connector.

port

Connector.

redirectPort

Receiver.

port

tomcat1

8005

jvm1

8009

8443

4000

tomcat2

8006

jvm2

9003

8444

4001

tomcat3

8007

jvm3

9004

8445

4002

tomcat4

8008

jvm4

9005

8446

4003

2.1.配置 server 的关闭

咱们须要在一台机器上跑 4 个不一样的 tomcat ,须要修改不一样的 tomcat 的关闭口,避免出现端口被占用的状况。其中tomcat1用默认值,不修改。其余三个修改。在conf下的 server.xml 中找到 server, 将:

<Server port="8005" shutdown="SHUTDOWN">

改成

<Server port="XXXX" shutdown="SHUTDOWN">

XXXX 在这里表示不一样的端口:个人其它三个 tomcat 分别使用的端口可查看参数参考表

2.2.配置 Engine

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

<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">        

如下是原来的配置。

<!-- <Engine name="Catalina" defaultHost="localhost">  -->

其余(tomcat3和tomcat4)也要一样配置。注意:jvmRoute配置不要同样。

<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm3"> 

<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm4"> 

2.3.配置 Connector

原来的默认配置。

<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

这里是apache和tomcat连接的关键,前台apache就是经过AJP协议与tomcat进行通讯的,以完成负载均衡的做用。也能够用HTTP协议。你们注意它们是如何链接通讯的,上面的红色部分(port="8009")就是链接的接口了。

把其余三个tomcat的<Connector port="XXX" />port分别改为与上面

<proxy balancer://cluster>

#与tomcat1对应,route与<Engine jvmRoute="jvm1">对应。

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

#与tomcat2对应,route与<Engine jvmRoute="jvm2">对应。

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

#与tomcat3对应,route与<Engine jvmRoute="jvm3">对应。

BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm3

#与tomcat4对应,route与<Engine jvmRoute="jvm4">对应。

BalancerMember ajp://127.0.0.1:9005 loadfactor=1 route=jvm4

</proxy>

中的端口对应,tomcat1 的ajp端口port:9003. Tomcat2 的ajp端口port:9004。Tomcat3 的ajp端口port:9005.必定要与上面的一致。同时也要把redirectPort的值改为惟一的,确保四个tomcat的都不同。可查看参数参考表

2.5.配置Cluster(每一个tomcat中都要修改)

原来的配置。

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

修改成如下的代码:<Receiver port=”XX”/>port也要保证惟一性。

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">

     <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/>

     <Channel className="org.apache.catalina.tribes.group.GroupChannel">

         <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>

         <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" selectorTimeout="100" maxThreads="6"/>

         <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

         </Sender>

         <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

         <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

         <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>

     </Channel>

     <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

     <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>

     <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

</Cluster>

这个设置是主要用以tomcat的集群。

相关文章
相关标签/搜索