tomcat apache搭建集群

本文详细介绍了使用Apache作为前端服务器,通过mod_jk模块和HTTP代理实现Tomcat集群的配置方法。包括Apache与Tomcat之间的负载均衡配置、会话复制等关键技术点。

需求:apache对静态文件处理性能好,无缝升级,负载均衡 增加容错(?)

环境

apache   apache_2.2.9-win32-x86-no_ssl-r2  安装在A机器

jdk  1.6

tomcat  绿色版5.0  一台安装在A机器  一台安装在B机器(其实在A机器的虚拟机)

A机器IP 1.1.7.75 B机器IP 1.1.7.77

集群搭建方式1:

jk方式:久经考验,稳定。

另外需要环境:mod_jk-1.2.26-httpd-2.2.4.jar 修改文件为mod_jk.jar拷贝到%apache_home%\modules

配置tomcat 修改%tomcat_home%\conf\server.xml文件

主要是一下几个地方<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">增加了 jvmRoute="worker1"

启用

<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"

                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"

                 expireSessionsOnShutdown="false"

                 useDirtyFlag="true"

                 notifyListenersOnReplication="true">

 

            <Membership 

                className="org.apache.catalina.cluster.mcast.McastService"

                mcastAddr="228.0.0.4"

                mcastPort="45564"

                mcastFrequency="500"

                mcastDropTime="3000"/>

 

            <Receiver 

                className="org.apache.catalina.cluster.tcp.ReplicationListener"

                tcpListenAddress="auto"

                tcpListenPort="4001"

                tcpSelectorTimeout="100"

                tcpThreadCount="6"/>

 

            <Sender

                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"

                replicationMode="pooled"

                ackTimeout="15000"/>

 

            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"

                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>

                   

            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"

                      tempDir="/tmp/war-temp/"

                      deployDir="/tmp/war-deploy/"

                      watchDir="/tmp/war-listen/"

                      watchEnabled="false"/>

        </Cluster>

第二台机器  修改jvmroute="worker2"就可以了。如果tomcat在一台机器上的需要修改端口(注)。

还有就是 注意

 <Connector port="8009" 

               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />  记住ajp的端口  不要和tomcat的端口搞混了 后面的配置需要用到  (我开始在这里浪费N多时间 也是自己不明白 ajp协议啊  不好意思。)

配置apache  

在 httpd.conf中增加了

#add **********************************************************************

LoadModule jk_module modules/mod_jk.so  #载入mod_jk.so

 

# Put this in the main section of your configuration (or desired virtual host, if using Apache virtual hosts)

JkWorkersFile conf/worker.properties  #载入配置文件  等下来配置

JkLogFile logs/mod_jk.log  #设定日志输出

JkLogLevel info  #日志输出级别

 

JkMount /* router #设定转发的方式  可以查资料 

JKMount /jkstatus status   #记录状态  以后可以在网页上查看相关信息

#add **********************************************************************

 

在 conf下面增加配置文件worker.properties

内容如下

worker.list=router,status

 

# Define a "local_worker" worker using ajp13

worker.worker1.port=8009 #ajp端口  注意  我开始设置为tomcat的端口了。。怎么都不成功

worker.worker1.host=1.1.7.75

worker.worker1.type=ajp13

worker.worker1.lbfactor=1 #权重

#worker.worker1.local_worker=1

 

# Define another "local_worker" worker using ajp13

worker.worker2.port=8009

worker.worker2.host=1.1.7.77

worker.worker2.type=ajp13

worker.worker2.lbfactor=1

#worker.worker2.local_worker=2

 

# Define the LB worker

worker.router.type=lb

worker.router.balance_workers=worker1,worker2

# worker.router.local_worker_only=1

worker.status.type=status

注意 应该就可以打到简单的集群了。

测试 部署个项目 

好像是sessionID复制 需要在项目的web.xml中增加<distributable/>

还可以在 http://1.1.7.75/jkstatus 查看相关数据。

 

2:http_proxy 方式

单机:

#add  http_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

 

#ProxyPass /images !

#ProxyPass /css !

#ProxyPass /js !

ProxyPass / http://localhost:8087/

#end **********************************************************************

 

负载均衡

#add  http_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

 

ProxyPass / balancer://proxy/   #可以增加权重的方式  请求数?字节数?

<Proxy balancer://proxy>

BalancerMember http://1.1.7.75:8087/   #可以增加权重

BalancerMember http://1.1.7.75:8088/

</Proxy>

#end **********************************************************************

 

3:ajp_proxy方式

没有配置好。

 

 

 

 

 

转载于:https://my.oschina.net/sunyh/blog/14252

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值