apache2.4+tomcat集群

非常感谢 http://andashu.blog.51cto.com/8673810/1381369

一、安装JDK

tar -xzvf xxx.tar.gz
chmod 777 -R /opt/jdk1.6.0_45/
配置JAVA环境变量:
vim /root/.bashrc  在最后添加以下内容:

export JAVA_HOME=/opt/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=".;$JAVA_HOME/lib/dt.jar;$JAVA_HOME/lib/tools.jar:$CLASSPATH"

使环境变量生效:
source /root/.bashrc
测试配置是否成功:
java –version

二、安装TOMCAT

apache-tomcat-7.0.41.tar.gz

#tar -zxvf apache-tomcat-6.0.18.tar.gz
#./apache-tomcat-6.0.18/bin/startup.sh

可访问  http://192.168.0.101:8080

重启命令:

#./apache-tomcat-6.0.18/bin/shutdown.sh

#./apache-tomcat-6.0.18/bin/startup.sh

三、TOMCAT集群

1.两个tomcat

#mv apache-tomcat-6.0.18 /usr/local/TC6_A
#cd /usr/local
#cp -a TC6_A TC6_B

2.修改 两个Tomcat 实例监听的端口

# vim /usr/local/TC6_A/conf/server.xml

Server <Server port="8005" shutdown="SHUTDOWN"> <Server port="10005" shutdown="SHUTDOWN"> 20005
AJP Connector

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port = "8009" protocol = "AJP/1.3" redirectPort = "8443" />

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port = " 10009 " protocol = "AJP/1.3" redirectPort = " 10043 " />


10009
20043

HTTP

Connector

<Connector port = "8080" protocol = "HTTP/1.1" connectionTimeout = "20000"
redirectPort = "8443" />

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

20001

20043
Engine

<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name = "Standalone" defaultHost = "localhost" jvmRoute = "jvm1">
<Engine name = "Catalina" defaultHost = "localhost">
-->

<Engine name = "Standalone" defaultHost = "localhost" jvmRoute = " Tomcat1">
Tomcat2


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

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

可访问  http://192.168.0.101:10001  http://192.168.0.101:20001

image  image

3、测试页面

/usr/local/TC6_A/webapps/ROOT 、/usr/local/TC6_B/webapps/ROOT 目录下 vim Hello.jsp。

<%@ page contentType="text/html;charset=GBK"%>
<html>
<head>
<title>Tomcat 测试 </title>
</head>
<body>
<font color="red" size="20">
<!— 使用 out 内建对象打印一条消息到输出页面 -->
<% out.print( "Tomcat 集群测试 A !!! " ); %>
</font>
</body>
</html>


TC6_B的改一行输出:
<% out.print( "Tomcat 集群测试 B !!! " ); %>

可访问  http://192.168.0.101:10001/Hello.jsp  、http://192.168.0.101:20001/Hello.jsp

image     image

 

 

四、Apache负载均衡器

1.安装

# tar -zxvf httpd-2.4.10.tar.gz

# cd httpd-2.4.10

#./configure --prefix=/usr/local/apache2  --enable-cache --enable-disk-cache -enable-mem-cache --enable-file-cache --with-ssl --enable-ssl --enable-so --enable-mime-magic --enable-proxy --enable-proxy-ajp --enable-proxy-balancer --enable-mods-shared=most --with-mpm=worker --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre/

# make
# make install

2.配置Apache 为 Tomcat 集群的负载均衡器

vim /usr/local/apache2/conf/httpd.conf

加载:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule speling_module modules/mod_speling.so
LoadModule ssl_module modules/mod_ssl.so

##################################################

#:如果只是修改配置 不编译重装的话 打开:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.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
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule speling_module modules/mod_speling.so
LoadModule ssl_module modules/mod_ssl.so

##################################################

末尾添加:

ProxyRequests Off
ProxyPass / balancer://myCluster/
<Proxy balancer://myCluster/>
BalancerMember ajp://localhost:10009 route=Tomcat1
BalancerMember ajp://localhost:20009 route=Tomcat2
</Proxy>

说明:其中" myCluster "是集群的名称," ajp://localhost:10009 route=Tomcat1 " 对应 Tomcat 集群中的 TC6_A 实例," ajp://localhost:20009 route=Tomcat2 " 对应 Tomcat 集群中的 TC6_B 实例。

3.访问页面

  1. 重启apache httpd后,访问:http://192.168.0.101/Hello.jsp

由 于 Apache 为 Tomcat 集群的负载均衡器,使用的是轮换算法,其均匀地将请求发送到集群中的各个 Tomcat 实例。因此轮换访问两个不同 Tomcat 实例中的 Hello.jsp 。

image

image

[root@centos1 opt]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1078/sshd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1554/master        
tcp        0      0 :::20009                    :::*                        LISTEN      2427/java          
tcp        0      0 :::3306                     :::*                        LISTEN      1452/mysqld        
tcp        0      0 :::80                       :::*                        LISTEN      23130/httpd        
tcp        0      0 :::30001                    :::*                        LISTEN      2471/java          
tcp        0      0 :::10001                    :::*                        LISTEN      2396/java          
tcp        0      0 :::81                       :::*                        LISTEN      1564/httpd         
tcp        0      0 ::ffff:127.0.0.1:30005      :::*                        LISTEN      2471/java          
tcp        0      0 ::ffff:127.0.0.1:10005      :::*                        LISTEN      2396/java          
tcp        0      0 :::22                       :::*                        LISTEN      1078/sshd          
tcp        0      0 :::30009                    :::*                        LISTEN      2471/java          
tcp        0      0 :::10009                    :::*                        LISTEN      2396/java          
tcp        0      0 ::1:25                      :::*                        LISTEN      1554/master        
tcp        0      0 ::ffff:127.0.0.1:4000       :::*                        LISTEN      2396/java          
tcp        0      0 ::ffff:127.0.0.1:4001       :::*                        LISTEN      2427/java          
tcp        0      0 :::20001                    :::*                        LISTEN      2427/java          
tcp        0      0 ::ffff:127.0.0.1:4002       :::*                        LISTEN      2471/java          
tcp        0      0 ::ffff:127.0.0.1:20005      :::*                        LISTEN      2427/java

posted @ 2015-01-06 22:59  hotarubi  阅读(564)  评论(0编辑  收藏  举报