说明:Apache和Tomcat配置集群不止一种方法,比较老一点的可能是使用mod_jk.so进行apache和tomcat的链接,这个方法稍微麻烦点,因为要单独下载mod_jk.so文件还要添加两个配置文件,在Apache2.X以后,它自身就集成了mod_jk.so功能,Apache官网下载Windows版本的比较麻烦,这里附上百度链接 点击这里
下面来看看 Apache2.2.25+Tomcat 8 配置过程:
准备工作
1. 下载安装Apache,然后下载解压版的Tomcat,想要集群几个Tomcat就复制几个
配置Apache
1. 打开Apache conf/httpd.conf文件,注释掉以下文件(就是将#去掉,理论上这些就够了,如果是ssl的Apache就把ssl释放开)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.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 proxy_scgi_module modules/mod_proxy_scgi.so
2. 去掉Include conf/extra/httpd-vhosts.conf的注释#
3. 在当前文件(httpd.conf)最后添加以下代码
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8109 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm2
</proxy>
4. 在conf/extra/httpd-vhosts.conf 文件最后添加以下代码(因为我的IIS是80,所以我把Apache改成了8082端口)
<VirtualHost *:8082>
ServerAdmin xiaoyiyz@126.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost>
Tomcat配置
Tomcat配置的时候要注意你是水平集群还是垂直集群,就是一台电脑还是多台,如果是多台电脑就不需要修改端口号,我这里是按照一台电脑来配置的,如下:
1. <Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
把以上端口号修改一下,每个Tomcat都不能一样,(注意AJP端口号,Apache是通过这个端口和Tomcat通信的,所以这里的端口号要对应Apache配置文件中
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm2 的端口号<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">)</span>
2. 在配置文件中找到<Engine name="Catalina" defaultHost="localhost">
在后面加上 jvmRoute="jvm2" 如:<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
注意这里的jvm2对应Apache中BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm2的配置
3. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>改为
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
</Cluster>
到这里就算配置完成了,然后启动Apache,Tomcat 在Tomcat webapps文件夹中新建一个jsp测试文件,代码如
<%
System.out.println("===========================");
%>
在浏览器里面输入http://localhost:8082/TestSolution/Test.jsp,测试一下吧