1)Apache请求分发服务器 Web服务器
2)Tomcat 应用服务器
3)jk_mod Apatch的插件,jk_mod 版本一定要和Apatch对应
1)下载Httpd
2)解压文件,我的存放在 D:\Apache24
3)修改httpd.conf 所有需要指定路径的地方,尤其是绝对地址使用 D:/ 而不要使用 D:\
4)修改httpd.conf ServerName localhost:80 意思是指定DNS,但是本机没有DNS,就为localhost或IP
5)DOS窗口下,运行Apatch,这样运行的好处是可以看到错误信息,cd D:\Apache24\bin>httpd
6)打开浏览器,localhost 看看页面是否有 it works
1)下载Tomcat,因为在本机要开启多个Tomcat,所以需要使用免安装版
2)复制多个Tomcat到本地目录中,本机上开启多个一定要修改端口号,避免端口冲突
3)修改server.xml 更改端口号,如果是不同的服务器上就没必要了,因为IP都不一样了
4)修改server.xml 添加集群配置,这里不同的tomcat,其 jvmRoute 值必须保证不一样
<!-- Define an AJP 1.3 Connector on port 8009,这个端口是上面提到 jk_mod 负载均衡时需要使用 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- You should set jvmRoute to support load-balancing(负载均衡) via AJP ie -->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
<!-- 集群配置,这里只需要这一句就能搞定,默认采用 HttpSession all-to-all 的同步通知方式 -->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
1)修改httpd.conf 在文件尾部添加 include "D:/Apache24/conf/mod_jk.conf"
2)conf 目录下新建 mod_jk.conf 、 workers.properties ,两个文件的具体内容见下面
3)Apache 安装目录下 modules 目录下粘贴 mod_jk.so 这个版本必须和Apatch保持对应,否则出现错误
line 1 of D:/Apache24/conf/mod_jk.conf: Cannot load modules/mod_jk-1.2.31-httpd-
2.2.3.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xb3\xcc\x
d0\xf2\xa1\xa3
<!-- mod_jk.conf 文件内容-->
# 1)加载mod_jk Module
LoadModule jk_module modules/mod_jk.so
# 2)指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
# 3) 设置日志存放路径
JkLogFile logs/mod_jk.log
# 4) 设置日志级别 [debug/error/info]
JkLogLevel info
# 5) 设置日志格式
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# 6)JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# 7)JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 8)指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器 JkMount /*.jsp controller
JkMount /*.* controller
<!-- workers.properties 文件内容-->
workers.tomcat1_home=D:/tomcat1
workers.tomcat2_home=D:/tomcat2
worker.list = controller
# tomcat1 配置信息
worker.tomcat1.port=10009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13 #定向包协议
worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
# tomcat2 配置信息
worker.tomcat2.port=20009 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.type=ajp13 #定向包协议
worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多
#controller,负载均衡控制器
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat
worker.controller.sticky_session=false
web项目一定要注意,web.xml 中添加 <distributable/>
因为我们这里Tomcat为我们进行了HttpSession的同步,所以可以写个测试HttpSession的例子,比如查看 HttpSession ID
把新建好的项目发布到Tomcat的webapp目录下,每个tomcat都要发布哦,不然怎么是多实例呢
启动所有的Tomcat
启动Apatch
测试localhost,多刷新几次页面是否负载均衡,是否HttpSession进行了同步
测试节点容错功能,关闭某个tomcat,看看Apache是否还能够进行跳转到其他可用实例,然后又启动Tomcat,又是否能被用