一:系统环境和软件版本
操作系统:Ubuntu 13.10 x64
Tomcat :apache-tomcat-7.0.52
JDK : 1.7.0_51
Apache :Apache/2.4.9
二:部署环境
Apache代理服务器
192.168.1.200 安装路径:/usr/local/apache
Tomcat1
192.168.1.200 安装路径:/opt/apache-tomcat-7.0.52
Tomcat2
192.168.1.201 安装路径:/opt/apache-tomcat-7.0.52
Tomcat2
192.168.1.202 安装路径:/opt/apache-tomcat-7.0.52
在
192.168.1.200
192.168.1.201
192.168.1.202
三个linux上,均需要在/etc/hosts文件中,增加如下内容:
192.168.1.200 tomcat
192.168.1.201 cluster1
192.168.1.202 cluster2
三:软件安装
Apache采用的是源码安装,安装之前需要先安装zlib、apr、apr-util,请先自行安装这些
我这里安装到/usr/local/apache
四:配置Apache
(1) ajp_proxy相关的模块有mod_proxy.so、mod_proxy_connect.so、mod_proxy_ajp.so等
(2) 添加或打开如下内容
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_ajp.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule lbmethod_byrequests_modulemodules/mod_lbmethod_byrequests.so
(3) 创建 ajp_proxy 主配置文件 vim extra/httpd-proxy.conf 内容为:
ProxyPassMatch /*.gif$ !
ProxyPassMatch /*.jpg$ !
ProxyPassMatch /*.png$ !
ProxyPassMatch /*.css$ !
ProxyPassMatch /*.js$ !
ProxyPassMatch /*.htm$ !
ProxyPassMatch /*.html$ !
ProxyPass /cloudos/ balancer://cluster/
ProxyPassReverse /cloudos/ balancer://cluster/
ProxyPassReverseCookiePath /cloudos /
<Proxy balancer://cluster/>
BalancerMember ajp://192.168.1.200:8009/cloudos/ route=node1
BalancerMember ajp://192.168.1.201:8009/cloudos/ route=node2
BalancerMember ajp://192.168.1.202:8009/cloudos/ route=node3
</Proxy>
a:请注意,这里的端口要和:Tomcat中server.xml的
<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />
这里的端口保持一致
b:
(4) 修改Apache主配置文件,使其关联ajp_proxy主配置文件
a:vim httpd.conf
加入下面的配置
Include conf/extra/httpd-proxy.conf
b:把原来的DocumentRoot目录地址改为:DocumentRoot "/src"
c:增加如下内容:
<Directory"/src">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
(5)配置Tomcat
1:创建目录/src
2:把web项目放入/src目录,我这里的项目是:cloudos
3:把tomcat安装文件解压到/opt目录,配置/opt/apache-tomcat-7.0.52/conf/ server.xml文件:
a:打开<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 这里的注释
b:添加:<Context path="/cloudos"docBase="/src/cloudos" />
c:修改<Engine name="Catalina" defaultHost="localhost">
改为:<Enginename="Catalina" defaultHost="localhost" jvmRoute="node1">
c:把/src、以及配置好的Tomcat整个目录拷贝到其它2个服务器上
注意:把第二个tomcat中的server.xml的
<Engine name="Catalina" defaultHost="localhost">
改为:
<Engine name="Catalina" defaultHost="localhost"jvmRoute="node2">
第三个,修改为:
<Engine name="Catalina" defaultHost="localhost"jvmRoute="node3">
五:注意事项
1:web.xml文件中,必须要有 <distributable/>这一句
2:放入session的所有对象,必须实现java.io.Serializable接口