一:系统环境和软件版本
操作系统: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) mod_proxy相关的模块有mod_proxy.so、mod_proxy_connect.so、mod_proxy_http.so、mod_proxy_ftp.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_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 lbmethod_byrequests_modulemodules/mod_lbmethod_byrequests.so
(3) 创建 mod_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 http://192.168.1.200:8080/cloudos/
BalancerMember http://192.168.1.201:8080/cloudos/
BalancerMember http://192.168.1.202:8080/cloudos/
</Proxy>
(4) 修改Apache主配置文件,使其关联mod_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:把/src、以及配置好的Tomcat整个目录拷贝到其它2个服务器上
五:注意事项
1:web.xml文件中,必须要有 <distributable/>这一句
2:放入session的所有对象,必须实现java.io.Serializable接口