Tomcat+Apache集群配置中,比较简单方便的有http协议和ajp 协议两种方式
前期准备:
- apache_2.2.13-x64-no-ssl.msi
- apache-tomcat-7.0.64.exe
- T.war(一个测试项目工程)
1.使用http协议实现
1.1安装和配置tomcat
1.1.1首先把tomcat复制n份,安装并且设置好不同的端口号(http端口号在conf/server.xml文件里面),分别是8080、8081、8082…以此类推
1.1.2接着开启每个tomcat的 Cluster 功能(只需要把conf/server.xml文件里面的如下图一行的注释去掉)
到此tomcat安装并且配置好
1.2安装和配置Apache
1.2.1 安装Apache,然后找到conf/httpd.conf文件,把下图几行的注释去掉
然后再conf/httpd.conf文件的最好一行添加一下内容
ProxyPass / balancer://example/
ProxyPassReverse / balancer://example/
<Proxy balancer://example/>
BalancerMember http://127.0.0.1:8080/ route=tomcat1
BalancerMember http://127.0.0.1:8081/ route=tomcat2
BalancerMember http://127.0.0.1:8082/ route=tomcat3
</Proxy>
其中
ProxyPassReverse 这一行赋值了session,去掉这一行,导致session丢失
BalancerMember http://127.0.0.1:808x/ route=tomcatx 表示tomcat所在的位置和路由器配置名,去掉后面的 “oute=tomcatx”也不影响主体功能
至此,Apache配置完成
1.3创建测试项目
1.3.1 创建一个名为”t”的项目,导出war包,复制n份,部署到n个tomcat中(记住:项目中的web.xml文件中添加一行:如图)
最后依次启动 所有的tomcat和Apache服务器(无顺序)
访问 Apache的路径(比如:http://localhost/t/test2.jsp),不断刷新浏览器,会发现响应的tomcat服务器不断切换着
2. 使用ajp协议实现
该种方式大体上和上面的第一种相同,只是 在Apache配置中 协议修改一下:如图
对应于conf/server.xml文件下的该端口