windows ApacheTomcat6集群和负载均衡Word文档下载推荐.docx
《windows ApacheTomcat6集群和负载均衡Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《windows ApacheTomcat6集群和负载均衡Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
安装用的程序(前提保证已安装了JDK1.5以上的版本)
APAHCE2.2下载:
httpd-2.2.15-win32-x86-no_ssl.msi
TOMCAT6.0下载:
apache-tomcat-6.0.26.tar.gz,apache-tomcat-6.0.26.exe
安装过程
APAHCE安装目录:
D:
\Apache。
四个TOMCAT目录:
自行解压到(D:
\Tomcat集群服务器\)下。
分别为tomcat6.0,tomcat6.01,tomcat6.02,tomcat6.03
一、配置
1、Apache配置
1.1、httpd.conf配置
修改APACHE的配置文件D:
\Apache\conf\httpd.conf
将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了mod_jk.so的功能。
只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。
这里主要采用了代理的方法,就这么简单。
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so
LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so
再找到<
IfModuledir_module>
<
/IfModule>
加上index.jsp修改成
DirectoryIndexindex.htmlindex.jsp
1.1.1、
在最下面加入
ProxyRequestsOff
proxybalancer:
//cluster>
BalancerMemberajp:
//127.0.0.1:
8009loadfactor=1route=jvm1
//127.0.0.1:
9009loadfactor=1route=jvm2
9001loadfactor=1route=jvm3
9003loadfactor=1route=jvm4
/proxy>
上面的四个BalancerMember成员是我们配置的tomcat集群。
后面会说明的。
1.2、httpd-vhosts.conf设置
接下来进行虚拟主机的设置。
APACHE的虚拟主机设置如下:
首先要修改conf/httpd.conf找到(#Includeconf/extra/httpd-vhosts.conf)
把注释去掉。
#Virtualhosts
Includeconf/extra/httpd-vhosts.conf
在文件(extra/httpd-vhosts.conf)最下面加入
VirtualHost*:
80>
ServerAdminweijie@
ServerNamelocalhost
ServerAliaslocalhost
ProxyPass/balancer:
//cluster/stickysession=jsessionidnofailover=On
ProxyPassReverse/balancer:
//cluster/
/VirtualHost>
其中的域名和路径根据你自己情况设置
然后再设置TOMCAT虚拟主机
2配置tomcat
2.1.配置server的关闭
我们需要在一台机器上跑4个不同的tomcat,需要修改不同的tomcat的关闭口,避免出现端口被占用的情况。
其中tomcat6.0用默认值,不修改。
其他三个修改。
在tomcat6.01\conf,tomcat6.02\conf下和tomcat6.03\conf下的server.xml中找到server,将:
Serverport="
8005"
shutdown="
SHUTDOWN"
>
改为
XXXX"
XXXX在这里表示不同的端口:
我的其它三个tomcat分别使用9005,8006,9007
2.2.配置Engine
把原来的配置注释掉,把下面一句去掉注释。
并标明jvmRoute="
jvm2"
.
Enginename="
Standalone"
defaultHost="
localhost"
jvmRoute="
以下是原来的配置。
!
--<
Catalina"
-->
其他(tomcat6.02和tomcat6.03)也要同样配置。
注意:
jvmRoute配置不要一样。
jvm3"
jvm4"
2.3.配置Connector
原来的默认配置。
--DefineanAJP1.3Connectoronport8009-->
Connectorport="
8009"
protocol="
AJP/1.3"
redirectPort="
8443"
/>
这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。
也可以用HTTP协议。
大家注意它们是如何连接通信的,上面的红色部分(port="
)就是连接的接口了。
把其他三个tomcat的<
XXX"
port分别改成与上面
#与tomcat6.0对应,route与<
EnginejvmRoute="
jvm1"
对应。
#与tomcat6.01对应,route与<
#与tomcat6.02对应,route与<
#与tomcat6.03对应,route与<
中的端口对应,tomcat6.01的ajp端口port:
9009.tomcat6.02的ajp端口port:
9001。
tomcat6.03的ajp端口port:
9003.一定要与上面的一致。
同时也要把redirectPort的值改成唯一的,确保四个tomcat的都不一样。
2.5.配置Cluster(每个tomcat中都要修改)
原来的配置。
ClusterclassName="
org.apache.catalina.ha.tcp.SimpleTcpCluster"
/>
修改为以下的代码:
Receiverport=”XX”/>
port也要保证唯一性。
channelSendOptions="
6"
ManagerclassName="
org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="
false"
notifyListenersOnReplication="
true"
mapSendOptions="
--
org.apache.catalina.ha.session.DeltaManager"
-->
ChannelclassName="
org.apache.catalina.tribes.group.GroupChannel"
MembershipclassName="
org.apache.catalina.tribes.membership.McastService"
address="
228.0.0.4"
port="
45564"
frequency="
500"
dropTime="
3000"
ReceiverclassName="
org.apache.catalina.tribes.transport.nio.NioReceiver"
auto"
5001"
selectorTimeout="
100"
maxThreads="
SenderclassName="
org.apache.catalina.tribes.transport.ReplicationTransmitter"
TransportclassName="
org.apache.catalina.tribes.transport.nio.PooledParallelSender"
/Sender>
InterceptorclassName="
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"
org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"
org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"
/Channel>
ValveclassName="
org.apache.catalina.ha.tcp.ReplicationValve"
filter="
.*\.gif;
.*\.js;
.*\.jpg;
.*\.png;
.*\.htm;
.*\.html;
.*\.css;
.*\.txt;
"
DeployerclassName="
org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="
/tmp/war-temp/"
deployDir="
/tmp/war-deploy/"
watchDir="
/tmp/war-listen/"
watchEnabled="
ClusterListenerclassName="
org.apache.catalina.ha.session.ClusterSessionListener"
/Cluster>
这个设置是主要用以tomcat的集群。
(<
<
expireSessionsOnShutdown="
notifyListenersOnReplication="
mapSendOptions="
--
address="
port="
frequency="
dropTime="
selectorTimeout="
maxThreads="
filter="
)
3、启动服务,测试tomcat自带的例子
1、测试apache和tomcat协作。
先在每个tomcat中的\webapps\ROOT下的index.jsp下面加上以下的测试代码部分:
(X代表不同的tomcat的输出不同的信息),把index.html删除,以免影响测试效果。
在最后面的加上.即<
/table>
/body>
之间。
%
System.out.println("
tomcat6.0Xdealwithrequest"
);
%>
然后再通过http:
//127.0.0.1来访问一下,就会出现大家熟悉的猫猫。
然后再通过分别访问
http:
8080,http:
9080,http:
8081,http:
9002它们访问的内容和上面的http:
//127.0.0.1是一样的。
这样就说明apache和TOMCAT整合成功!
2、测试均衡器
通过http:
//127.0.0.1多次访问,要想看到真正的效果,必须用一些压力测试工具,可用微软MicrosoftWebApplicationStressTool进行简单压力测试,不然你靠不停刷新是体现不出来的,你只会在一个tomcat的控制台有输出结果。
只用用压力测试工具模拟大量用户同时访问,你会发现四个tomcat控制台均有打出控制信息,说明均衡器工作正常。
二:
配置
1:
配置Apache在启动时自动加载代理(proxy)
首先,在Apache安装目录下找到conf/httpd.conf文件,去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so
LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
向下拉动文档找到<
节点,在DirectoryIndexindex.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。
继续下拉文档找到Includeconf/extra/httpd-vhosts.conf,去掉前面的注释符。
2:
配置虚拟站点
打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上
VirtualHost
*:
ServerAdmin
管理员邮箱
ServerName
localhost
ServerAlias
localhost
ProxyPass
/
balancer:
//sy/
stickysession=jsessionid
nofailover=On
ProxyPassReverse
ErrorLog
logs/sy-error.log"
CustomLog
logs/sy-access.log"
common
3:
配置httpd.conf
然后回到httpd.conf,在文档最下面加上
ProxyRequests
Off
proxy
//sy>
BalancerMember
ajp:
8009
loadfactor=1
route=jvm1
9009
route=jvm2
ProxyRequestsOff是告诉Apache需要使用反向代理,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。
loadfactor是负载因子,Ap