简单的Tomcat集群搭建
之前也实现过简单的Tomcat集群,今天突然被问起竟然有些记不清了,还是记下来才是王道😁😁。
前期准备
- Windows环境
- Apache2.4
- tomcat7(多个)
- mod_jk_2.4(版本一定要与apache一致)
软件安装与配置
Apache安装
安装命令
(Apache的下载这里就不赘述了,英文看不懂百度上也有下载教程。)
因为我是在Windows环境下操作的,所以需要以管理员的身份运行cmd,进入到下载并解压好的 Apache24/bin
目录下,命令如下:
1 | D:\httpd-2.4.39-o102r-x64-vc14\Apache24\bin>httpd.exe -k install |
启动命令
安装完成后,需要启动Apache服务,不过在此之前,需要对配置文件做相应的修改:修改 Apache24\conf
目录下httpd.conf
文件的第38行如下:
1 | Define SRVROOT "D:\httpd-2.4.37-o102p-x64-vc14\Apache24" //为当前Apache24的安装路径 |
启动命令如下:
1 | D:\httpd-2.4.39-o102r-x64-vc14\Apache24\bin>httpd.exe -k start |
停止命令如下:
1 | D:\httpd-2.4.39-o102r-x64-vc14\Apache24\bin>httpd.exe -k stop |
常见报错
“(OS 5)拒绝访问。 : AH00369: Failed to open the Windows service manager…”
错误原因:没有用管理员身份运行cmd
httpd: Syntax error on line 532 of D:/work/Apache24/conf/httpd.conf: Syntax error on line 3 of
D:/work/Apache24/conf/mod_jk.conf: Cannot load modules/mod_jk-1.2.31-httpd-2.2.3.so into server: %1\xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
错误原因:apache和mod_jk的版本不一致
443端口占用
修改方法:找到Apache24\conf\extra
下面的httpd-ahssl.conf
和httpd-ssl.conf
,有443的地方改为442就可以了。
其他错误可见百度,我在部署时没有遇到其他情况
mod_jk 连接模块
mod_jk.so下载地址
点击进入下载界面 (嘿嘿,讲真的我自己也不能确定Apache对应的mod_jk版本是啥,试了几次才找对😁,惭愧惭愧。)
操作步骤
1、把mod_jk.so
文件拷贝到Apache24\modules
下
2、在Apache24\conf
目录下新建mod_jk.conf
、workers.properties
文件(为了保持httpd.conf
文件的简洁,所以把 jk 模块的配置放到单独的文件中来)
3、mod_jk.conf
配置内容如下:
1 | # Load mod_jk2 module |
需要注意的地方是,第二行的
modules/mod_jk-1.2.31-httpd-2.2.3.so
改为实际的mod_jk文件文件名称
4、workers.properties
文件中添加内容如下:
1 | #server 列表 |
5、在httpd.conf
文件最后添加如下:
1
2# JK module settings
Include conf/mod_jk.conf
6、重新启动Apache,观察是否有mod_jk的版本错误,如果有重新替换Apache24\modules
下的mod_jk.so
文件即可,其他配置文件无需修改;启动成功后,访问localhost:80
即可进去Apache的主界面(与tomcat访问localhost:8080
类似)。
Tomcat 配置
修改 server.xml 文件
1、在此我准备了两个Tomcat,所以要确保个tomcat的端口不冲突,修改一下 port
1
<Server port="9005" shutdown="SHUTDOWN">
1
<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
1
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
2、打开 Engine 注释,并添加 jvmRoute 属性
1
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2" >
注意:jvmRoute的值要与 workers.properties中配置的相一致
3、打开 Cluster 注释
1 | <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> |
修改 web.xml 文件
在文件末加入<distributable/>
标签:
1 | ………… |
测试
编写测试 MyJsp.jsp
1 | <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> |
测试效果
将编写好的测试程序,分别放入两个Tomcat,并启动测试保证访问成功。浏览器中输入locahost:80/TomcatTest/MyJsp.jsp
(我自己的程序地址),多次刷新地址,页面内容如下:
通过访问 Apache 的服务地址,系统任意跳转到其中一个 Tomcat 进行系统展示,从而达到负载均衡的效果。
至此,一个基于Windows系统的简单的Tomcat集群就算是完成了。此文是自己实际操作的笔记,如有不对,多多谅解。
- 本文标题:简单的Tomcat集群搭建
- 本文作者:往后余生
- 本文链接:https://yuefengs.top/posts/6067ee98/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!