APCHE+TOMCAT+SVN(集群)集成安装
再参照:Linux下Apache+Tomcat负载均衡(一机多实例)
http://wenku.baidu.com/view/c667d8beec3a87c24028c4a3.html
1 软件安装
JDK安装JDK1.5.**
TOMCAT安装Tomcat6.0.18
svn1.4.6安装
apache2.2.11安装,采用默认端口80
apache2.0.63安装,采用默认端口80安装,然后进入httpd.conf找到listener80将80修改为其他端口如:81
这些软件都可以在官网上能够下载
注:这里安装两个apache,是避免配置繁琐的jk
Apache2.2.11与tomcat集成(apache2.2目前好像不能与svn集成)
Apache2.0.63与svn集成,但由于apache2.0.63没有采用80做为端口,如果又不希望访问时使用端口号,就需要再通过Apache2.2.11映射一次
2 Apache2.2.11与tomcat6.0.18集成
2.1 Apache配置
2.1.1 修改apache的配置文件conf/httpd.conf
A、将下列模块前面的注释去掉
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
这里就不需要另外另外安装mod_jk.so模块,apache2.2已经将该模块集成进来了(早该这样做了的),这里主要采用代理的模式,也是apache2.2才开始提供的功能,配置要简单很多哦
B、添加你希望的首页
DirectoryIndexindex.htmlindex.jspmyhomepage.jsp
C、在文件末尾加上下面的集群配置
<proxy balancer: //cluster>
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
上面的两个BalancerMember成员是我们配置的tomcat集群
2.1.2 虚拟主机设置(httpd-vhosts.conf) 首先需要删除在httpd.conf文件里面引用httpd-vhosts.conf前面的注释:
Includeconf/extra/httpd-vhosts.conf
然后在文件末尾添加
<VirtualHost*:80>
ServerNamecluster.wanguba.com
ServerAliascluster.wanguba.com
ProxyPass/balancer://cluster/stickysession=jsessionid nofailover=On
ProxyPassReverse/balancer://cluster/
</VirtualHost>
配置cluster.wanguba.com指向集群地址,这个时候如果在tomcat下有多个应用,就需要通过这种方式访问:
http://cluster.wanguba.com/app1
http://cluster.wanguba.com/app2
但是,我们希望通过更酷的方式来配置,如
就还需要做余下的工作:
<VirtualHost*:80>
ServerNamewww.wanguba.com
ProxyIOBufferSize8192
ProxyRequestsOff
ProxyViaFull
ProxyPass/http://cluster.wanguba.com/wanguba/smax=5max=20ttl=120retry=300
ProxyPassReverse/http://cluster.wanguba.com/wanguba/
</VirtualHost>
<VirtualHost*:80>
ServerNameforum.wanguba.com
ProxyIOBufferSize8192
ProxyRequestsOff
ProxyViaFull
ProxyPass/http://cluster.wanguba.com/JForum/smax=5max=20ttl=120retry=300
ProxyPassReverse/http://cluster.wanguba.com/JForum/注意:最后的/一定要的
</VirtualHost>
这样就配置了两个应用,访问路径分别为:
www.wanguba.com(这个是系统的主应用,当然采用最酷的域名)
forum.wanguba.com
这个时候,apache配置基本搞定,下面就来看tomcat的配置
2.2 TOMCAT配置
2.2.1 配置server的关闭
我们需要在一台机器上跑2个不同的tomcat,需要修改不同的tomcat的关闭口,避免出现端口被占用的情况。其中一个用默认值,不修改。另外一个需要修改。在tomcat/conf下的server.xml中找到server,将:
<Serverport="8005"shutdown="SHUTDOWN">
改为
<Serverport="XXXX"shutdown="SHUTDOWN">
2.2.2 配置Engine
把原来的配置注释掉,把下面一句去掉注释。并标明jvmRoute="jvm1".jvmRoute对应apache配置文件配置的属性route
<Enginename="Standalone"defaultHost="localhost"jvmRoute="jvm1">
以下是原来的配置。
<!--<Enginename="Catalina"defaultHost="localhost">-->
注意:jvmRoute配置不要一样。
<Enginename="Standalone"defaultHost="localhost"jvmRoute="jvm2">
2.2.3 配置Connector原来的默认配置。
<!--DefineanAJP1.3Connectoronport8009-->
<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>
#与tomcat6.0对应,route与<Engine jvmRoute="jvm1">对应。
BalancerMemberajp://127.0.0.1:8009 loadfactor=1 route=jvm1
#与tomcat6.01对应,route与<Engine jvmRoute="jvm2">对应。
BalancerMemberajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
中的端口对应,tomcat6.01的ajp端口port:9009 .一定要与上面的一致。同时也要把redirectPort的值改成唯一的,确保tomcat的都不一样。
2.2.4 配置Cluster(每个tomcat中都要修改)
原来的配置。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
修改为以下的代码(其中Receiver port=”XX”的 port也要保证唯一性。):
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="6">
<ManagerclassName="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<!--
<ManagerclassName="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
-->
<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"
address="auto"
port="5001"
selectorTimeout="100"
maxThreads="6"/>
<SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<InterceptorclassName="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="false"/>
<ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
OK, TOMCAT的配置基本完成
2.3 测试配置1、启动tomcat与apache服务,访问http://cluster.wanguba.com出现tomcat的欢迎页面,配置成功,
2、访问 http://www.wanguba.com 出现wanguba的主页面,配置成功
3、访问http://forum.wanguba.com 出现forum的主页面,太高兴了
3 APACHE 与 SVN的集成
3.1 Apache2.0.63的安装
安装完成以后,启动服务,需要修改端口与apache2.2.11端口不一致
3.2 安装SVN1.4.6
安装过程中,SVN会自动寻找apache并且会在apache中添加相关的配置,不需要拷来拷去了,人生最幸福的事情莫过于此了
安装完成以后,
到svn的bin目录下执行:
Svnadmin create E:/yourSVN库
创建你自己的SVN库位置 ,权限设置这里就不描述了,但是记得要先安装apache再安装tomcat
哦,还需要在apache的httpd.conf文件最下面添加svn库位置,因为安装的时候并没有创建svn库,如果apache有这么智能就好了
<Location /svn>
DAV svn
SVNParentPath "E:/lixh-develop/svn/repo"
# AuthzSVNAccessFile svnaccessfile
# AuthType Basic
# AuthName "Subversion repositories"
# AuthUserFile "C:/Program Files/Apache Group/userpass/pwd"
# Require valid-user
</Location>
其中E:/lixh-develop/svn/repo为你的库位置,如果路径中有空格,记得加引号哦
3.2.1 测试
启动apache与svn服务,
Svn服务需要通过命令行启动
svnserve -d -r E:/lixh-develop/svn/repo
在浏览器中输入
http://127.0.0.1:81/svn,哇,界面出来了,晕没权限,但是还是出来了,没权限不要紧,配置正确最重要
3.2.2 与apache2.2.11集成
既然都能够访问了,这个就相当简单了,在apache2.2.11的httpd-vhost.conf的最下面添加配置:
<VirtualHost *:80>
ServerName svn.wanguba.com
ProxyIOBufferSize 8192
ProxyRequests Off
ProxyVia Full
ProxyPass / http://127.0.0.1:81/svn smax=5 max=20 ttl=120 retry=300
ProxyPassReverse / http://127.0.0.1:81/svn
</VirtualHost>
映射到apache2.0.63,
访问:
http://svn.wanguba.com SVN界面出来了,晕还是没权限,不过很庆幸没有权限,如果有权限有问题了,错误不重要,错误一致才最重要
4 OK,大功告成