今天配置了windows下Apache+tomcat实现的服务器配置,主要实现的功能如下:
通过Apache监听80端口,然后用mod_jk.so把请求传给tomcat服务器,启用两个tomcat服务器监听不同的端口,如果主tomcat服务器挂了,就由备tomcat服务器提供服务。
具体实现如下:
1,安装apache,本次是用的是apache_2.2.4安装版。安装目录为D:\Tomcat_Test\Apache_home
2,安装tomcat1,tomcat2,本次使用的是apache-tomcat-7.0.52-windows-x64 (1).zip绿色解压版,直接解压该文件 到D:\Tomcat_Test目录下 更名为D:\Tomcat_Test\tomcat1,复制一份更名为D:\Tomcat_Test\tomcat2
下面就开始配置了--
3,将mod_jk.so(可以在网上下载,该文件作用是链接tomcat与apache)拷贝到apache安装目录下的modules文件夹 下。
4,在Apache安装目录下的conf下 找到httpd.conf配置文件,在该文件最后添加如下内容:
#新添加
### Section 3: Virtual Hosts # Use name-based virtual hosting. NameVirtualHost *:80
# 装载mod_jk模块,用于处理Apache和Tomcat的连接
LoadModule jk_module modules/mod_jk.so
# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile conf/workers.properties
# 记录日志的工作级别 # Set the jk log level [debug/error/info]
JkLogLevel debug
# 模块工作日志的目录位置,可自由定义
JkLogFile logs/mod_jk2.log
JkMount /* router
5,在Apache的安装目录下的conf文件夹下,建立一个新文件命名为workers.properties,在文件中写入:
#定义宏属性
workers.tomcat_home1=D:\Tomcat_Test\tomcat1\apache-tomcat-7.0.52
workers.tomcat_home2=D:\Tomcat_Test\tomcat2\apache-tomcat-7.0.52
#让mod_jk模块知道
Tomcat workers.java_home=C:/software/work/jdk_home/Java/jdk1.7.0_51
#让mod_jk模块知道j2sdk
ps=/
# 定义一个高级路由LB worker
worker.list=router
# 定义一个使用 ajp13的worker
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker1.inprocess.class_path=$(workers.tomcat_home1)$(ps)classes
worker.worker1.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
# 给worker1定义了一个发生错误处理失败后要引用的节点
worker.worker1.redirect=worker2
# 定义另外一个使用ajp13的节点
worker.worker2.port=8008
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker2.inprocess.class_path=$(workers.tomcat_home2)$(ps)classes
worker.worker2.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
# 除非发生了错误并且处理失败了,否则就禁用所有发给worker2的请求
worker.worker2.disabled=True
# 定义LB worker
worker.router.type=lb
worker.router.balance_workers=worker1,worker2
#Worker1的Redirect标记告诉lb_worker 只有当worker1在错误状态时才把请求重定向到worker2。否则worker2 #不会接到任何请求,worker2就好像热备份一样。
6,修改tomcat1安装目录下的conf中的server.xml
1)把内容:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
改为:
<Host name="www.quanttechTest.cn" debug="0" appBase="D:/Tomcat_Test/tomcat1/apache-tomcat-7.0.52/webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"