日期:2014-05-17  浏览次数:20922 次

Apache+Tomcat菜鸟求助 有关mod_jk的
因为公司两个网站用的一台服务器,所以想通过Apache整合2个tomcat 2个tomcat分别部署2个不同的网站。

按网上找的教程操作的

1.弄了2个tomcat 把它们的端口都改了以确保能同时启动(不知道是否必要)

2.下载了mod_jk-1.2.26-httpd-2.2.4.so 放入了modules文件夹

3.按教程上的要求创建了 mod_jk.conf workers.properties 和 uriworkermap.properties文件 并修改了 httpd.conf


问题:
在执行httpd.exe -w -n "Apache2.2" -k start检查配置文件时报如下错误:
Syntax error on line 4 of C:/Program Files (x86)/Apache Software Foundation/Apac
he2.2/conf/mod_jk.conf:
JkWorkersFile takes one argument, the name of a worker file for the Tomcat servl
et containers


附:

环境:win7 Apache2.2 apache-tomcat-6.0 jdk1.6.0_10

mod_jk.conf文件内容如下:
#加载mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
### 配置 mod_jk
JkWorkersFile conf/workers.properties #加载集群中的workers
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log #指定jk的日志输出文件  
JkLogLevel warn #指定日志级别


workers.properties文件内容如下:

# worker列表需要配置多个tomcat的话参s1配置
worker.list=controller,s1,s2
#第一个server的配置,server名为s1
worker.s1.port=8019 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.s1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.type=ajp13
worker.s1.lbfactor=1 #server的加权比重,值越高,分得的请求越多
#第二个server的配置,server名为s2
worker.s2.port=8029 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.s2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.s2.type=ajp13
worker.s2.lbfactor=1 #server的加权比重,值越高,分得的请求越多
#server名为controller,用于负载均衡
worker.controller.type=lb
worker.retries=3 #重试次数
#指定分担请求的server列表,用逗号分隔
worker.controller.balanced_workers=s1,s2
#设置用于负载均衡的server的session可否共享 
worker.controller.sticky_session=1


uriworkermap.properties文件内容如下:

#所有请求都由controller这个server处理
/*=controller
#所有包含jkstatus请求的都由status这个server处理
/jkstatus=status
#所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
!/*.gif=controller  
!/*.jpg=controller
!/*.png=controller
!/*.css=controller
!/*.js=controller
!/*.htm=controller
!/*.html=controller


httpd.conf添加/修改的内容为:

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

......


#以下为tomcat集成配置部分
include conf/mod_jk.conf

#以下为配置域名
#如果机器有多个IP地址请务必使用*号
NameVirtualHost *
#www.fjj.com站点
<VirtualHost *>
ServerName www.abimoor.com
DocumentRoot "C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-6.0-01\webapps\ROOT" #指定项目位置最好带引号防止无法识别录路径
JkMount /* controller 没有这句apache不会将请求转发给tomcat处理(就是work..properties里配置的)
</VirtualHost>
#www.lj.com站点
<VirtualHost *>
ServerName www.maple.com
DocumentRoot "C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-6.0-02\webapps\ROOT”
JkMount /* controller
</VirtualHost>



------解决方案--------------------
现在你在服务器上装了2个tomcat,分别放www.abimoor.com和www.maple.com 。然后通过整合apache和tomcat实现不同的域名访问到不同的tomcat上吧。具体需求是这样的吧。
既然www.abimoor.com和www.maple.com 是不同的网站就不需要用controller了,将workers.properties的内容改成如下
# worker列表需要配置多个tomcat的话参s1配置
worker.list=s1,s2
#第一个server的配置,server名为s1
worker.s1.port=8019 #ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.s1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.type=ajp13
worker.s1.lbfactor=1 #server的加权比重,值越高,分得的请求越多
#第二个server的配置,server名为s2
worker.s2.port=8029 #ajp13 端口号,在to