windows下Apache2.2.17+2个tomcat6.0.20集群(新手)

1.下载安装文件就不详细说了

安装版+绿色版

2.顺序,本人安装的顺序

首先,2个tomcat的并行运行

然后跟Apache做负载均衡

第一步:tomcat解压,并复制一份


第二步:打开“ tc6_1 ”文件夹下“ conf ”文件夹下的“ server.xml ”文件以及“ tc6_2 ”文件夹下“ conf ”文件夹下的“ server.xml ”文件

要修改的地方:

—————————————分割线1号—————————————————————————


tc6_1:

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

tc6_2:

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

这是指,关闭tomcat调用的端口

—————————————分割线2号—————————————————————————


tc6_1:

<Connector port = " 10001 " protocol = "HTTP/1.1" connectionTimeout = "20000" redirectPort = " 10043 " />

tc6_2:

<Connector port = " 20001 " protocol = "HTTP/1.1"  connectionTimeout = "20000"  redirectPort = " 20043 " />

—————————————分割线3号—————————————————————————


tc6_1:

<Connector port = "10009" protocol = "AJP/1.3" redirectPort = "10043" />

tc6_2:

<Connector port = "20009" protocol = "AJP/1.3" redirectPort = "10043" />

—————————————分割线3号—————————————————————————



tc6_1:

<Engine name = "Catalina" defaultHost = "localhost" jvmRoute = " Tomcat1 ">

<!-- You should set jvmRoute to support load-balancing via AJP ie :

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

-->

tc6_2:

<Engine name = "Catalina" defaultHost = "localhost" jvmRoute = " Tomcat2 ">

<!-- You should set jvmRoute to support load-balancing via AJP ie :

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

-->

这里记得,名字不能变,不然tomcat跑步起来,报错

警告: Error registering contexts
java.lang.NullPointerException
        at org.apache.catalina.connector.MapperListener.registerHost(MapperList
ner.java:332)
        at org.apache.catalina.connector.MapperListener.init(MapperListener.jav
:129)
        at org.apache.catalina.connector.Connector.start(Connector.java:1146)
        at org.apache.catalina.core.StandardService.start(StandardService.java:
31)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:71
)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2014-12-10 20:56:47 org.apache.catalina.startup.Catalina start
信息: Server startup in 2848 ms

这个错误就是出在这个name的问题

—————————————分割线4号—————————————————————————


tc6_1:

<Cluster

className = "org.apache.catalina.ha.tcp.SimpleTcpCluster"

channelSendOptions = "8"

>

<Manager className = "org.apache.catalina.ha.session.DeltaManager"

expireSessionsOnShutdown = "false"

notifyListenersOnReplication = "true" />

<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"

autoBind = "100"

selectorTimeout = "5000"

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" />

</Channel>

<Valve className = "org.apache.catalina.ha.tcp.ReplicationValve" filter="" />

<Valve className = "org.apache.catalina.ha.session.JvmRouteBinderValve" />

<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.JvmRouteSessionIDBinderListener" />

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

</Cluster>

tc6_2:

<Cluster

className = "org.apache.catalina.ha.tcp.SimpleTcpCluster"

channelSendOptions = "8"

>

<Manager className = "org.apache.catalina.ha.session.DeltaManager"

expireSessionsOnShutdown = "false"

notifyListenersOnReplication = "true" />

<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"

autoBind = "100"

selectorTimeout = "5000"

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" />

</Channel>

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

filter = ""/>

<Valve className = "org.apache.catalina.ha.session.JvmRouteBinderValve" />

<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.JvmRouteSessionIDBinderListener" />

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

</Cluster>

这个配置内容主要是对集群中各个 Tomcat 实例间进行通信的方式、端口以及 Session 共享算法的设置。有兴趣的可以去看官方文档

—————————————分割线5号—————————————————————————

分别在两个tomcat里,新建一个jsp文件



—————————————分割线6号—————————————————————————

配置系统环境变量



另外,分别修改两个tomcat下bin目录的startup.bat和catalina.bat文档内容

startup.bat:

在tomcat1中,把CATALINA_HOME改为CATALINA_HOME1

在tomcat2中,把CATALINA_HOME改为CATALINA_HOME2

catalina.bat:

在tomcat1中,把CATALINA_HOME改为CATALINA_HOME1,CATALINA_BASE改为CATALINA_BASE1。  

在tomcat2中,把CATALINA_HOME改为CATALINA_HOME2,CATALINA_BASE改为CATALINA_BASE2。  

这样就可以,分别运行tomcat1的startup.bat和tomcat2,在tomcat1 server startup,才运行tomcat2的startup.bat

在浏览器输入Http://localhost:10001/hello.jsp和Http://localhost:20001/hello.jsp



关于windows下,多个免装版tomcat运行问题,友链:

http://zwy20034751-163-com.iteye.com/blog/1960538

—————————————分割线6号—————————————————————————

接下来配置Apache,首先安装略过

打开httpd.conf


在该文件的最下面,添加下面文字

ProxyRequests Off

ProxyPass / balancer://myCluster/

<Proxy balancer://myCluster/>

BalancerMember ajp://localhost:10009 route=Tomcat1

BalancerMember ajp://localhost:20009 route=Tomcat2

</Proxy>

另外,在该文件搜索Proxy

如下图,去掉前面的#号


重启tomcat1和tomcat2,重启,Apache

在浏览器下输入:localhost/hello.jsp,负载均衡的效果就会出来

另附学习过程中遇到的问题

the requested operation has failed

这个提示是Apache跑不起来,

这里有个很好的友链:

http://www.jb51.net/article/21004.htm

修改80端口被占用问题

在httpd.conf文件里

在第一行加

ServerName localhost:81

并搜索Listen 把后面80改成81


—————————————最后的分割线—————————————————————————

以上是小弟学习过程及笔记,大部分内容来自网络

ps:遇到很多问题,找过很多资料,感谢春暖花开的教程






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值