按网上找的教程操作的
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>
11 个解决方案
#1
JkWorkersFile takes one argument, the name of a worker file for the Tomcat servl
et containers 这个错误通过百度网上找了半天,资料好少。加上我对Apache实在是不熟悉
拜托遇到过此问题,或者清楚此问题的人帮忙提示一下。
et containers 这个错误通过百度网上找了半天,资料好少。加上我对Apache实在是不熟悉
拜托遇到过此问题,或者清楚此问题的人帮忙提示一下。
#2
没人解答么?自己顶一下
#3
apache有没有成功启动,既然这两个网站都泡在tomcat下,为什么不用一个tomcat来代替呢
#4
只要能实现两个域名公用一个IP就行,实现倒无所谓。
我知道IIS也可以做到,只是那个机器安装IIS有问题,服务器重装代价太大,就想用别的办法了。
用一个tomcat我知道可以部署多的网站,单怎么实现通过来源域名的不同进行跳转呢?
我知道IIS也可以做到,只是那个机器安装IIS有问题,服务器重装代价太大,就想用别的办法了。
用一个tomcat我知道可以部署多的网站,单怎么实现通过来源域名的不同进行跳转呢?
#5
问题补充:
1、tomcat启动没有任何问,里边部署的网站都可以正常运行。启动顺序是先启动tomcat再启动apache的,也尝试过其他(先启动apache或者只启动apache)
2、目前的版本环境是 Apache2.2 apache-tomcat-6.0 jdk1.6.0_10 mod_jk-1.2.26
根据其他人提示可能是版本兼容的问题:也测试了 Apache2.0 apache-tomcat-5.0 mod_jk-1.2.14 错误依旧
具体产生错误的位置就在mod_jk.conf文件完成LoadModule之后的语句
JkWorkersFile conf/workers.properties #加载集群中的workers
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log #指定jk的日志输出文件
JkLogLevel warn #指定日志级别
排除版本兼容问题的话有可能是我配置文件写的有问题,比如workers.properties,希望大家多忙忙指导下
1、tomcat启动没有任何问,里边部署的网站都可以正常运行。启动顺序是先启动tomcat再启动apache的,也尝试过其他(先启动apache或者只启动apache)
2、目前的版本环境是 Apache2.2 apache-tomcat-6.0 jdk1.6.0_10 mod_jk-1.2.26
根据其他人提示可能是版本兼容的问题:也测试了 Apache2.0 apache-tomcat-5.0 mod_jk-1.2.14 错误依旧
具体产生错误的位置就在mod_jk.conf文件完成LoadModule之后的语句
JkWorkersFile conf/workers.properties #加载集群中的workers
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log #指定jk的日志输出文件
JkLogLevel warn #指定日志级别
排除版本兼容问题的话有可能是我配置文件写的有问题,比如workers.properties,希望大家多忙忙指导下
#6
现在你在服务器上装了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 端口号,在tomcat下server.xml配置,默认8009
worker.s2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.s2.type=ajp13
worker.s2.lbfactor=1 #server的加权比重,值越高,分得的请求越多
apache的虚拟主机如下配置
NameVirtualHost *
#www.abimoor.com站点
<VirtualHost *>
JkMount /* s1
ServerName www.abimoor.com
</VirtualHost>
#www.maple.com站点
<VirtualHost *>
JkMount /* s2
ServerName www.maple.com
</VirtualHost>
JkMountFile conf/uriworkermap.properties 这个去掉不要了
这个试试看可行。
既然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 端口号,在tomcat下server.xml配置,默认8009
worker.s2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.s2.type=ajp13
worker.s2.lbfactor=1 #server的加权比重,值越高,分得的请求越多
apache的虚拟主机如下配置
NameVirtualHost *
#www.abimoor.com站点
<VirtualHost *>
JkMount /* s1
ServerName www.abimoor.com
</VirtualHost>
#www.maple.com站点
<VirtualHost *>
JkMount /* s2
ServerName www.maple.com
</VirtualHost>
JkMountFile conf/uriworkermap.properties 这个去掉不要了
这个试试看可行。
#7
额 还是不行 郁闷呀....
我还尝试了只配置一个tomcat 也是失败,会不会和我的操作系统是win7有关呢?
或者还是我配置文件哪里有致命错误。
你们谁有配成功的例子,麻烦能否吧Apache conf目录下的所有文件发给我。我逐一比对一下吧。
Email:lingxiaoverygood@sina.com
我还尝试了只配置一个tomcat 也是失败,会不会和我的操作系统是win7有关呢?
或者还是我配置文件哪里有致命错误。
你们谁有配成功的例子,麻烦能否吧Apache conf目录下的所有文件发给我。我逐一比对一下吧。
Email:lingxiaoverygood@sina.com
#8
apache,tomcat 通过proxy...
#9
你搜索tomcat 域名绑定方面的可能更容易找到答案
#10
后来果然还是拿tomcat实现了... 谢谢各位的提示和帮助
不过apache的配置还是没搞明白,自己潜下心来看看书吧
<Host name="www.animoor.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/animoor" reloadable="true">
</Context>
</Host>
<Host name="www.maple.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/maple" reloadable="true">
</Context>
</Host>
<Host name="www.animoor.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/animoor" reloadable="true">
</Context>
</Host>
<Host name="www.maple.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/maple" reloadable="true">
</Context>
</Host>
#11
注释惹的祸,#开头的注释语句要占一行~
#1
JkWorkersFile takes one argument, the name of a worker file for the Tomcat servl
et containers 这个错误通过百度网上找了半天,资料好少。加上我对Apache实在是不熟悉
拜托遇到过此问题,或者清楚此问题的人帮忙提示一下。
et containers 这个错误通过百度网上找了半天,资料好少。加上我对Apache实在是不熟悉
拜托遇到过此问题,或者清楚此问题的人帮忙提示一下。
#2
没人解答么?自己顶一下
#3
apache有没有成功启动,既然这两个网站都泡在tomcat下,为什么不用一个tomcat来代替呢
#4
只要能实现两个域名公用一个IP就行,实现倒无所谓。
我知道IIS也可以做到,只是那个机器安装IIS有问题,服务器重装代价太大,就想用别的办法了。
用一个tomcat我知道可以部署多的网站,单怎么实现通过来源域名的不同进行跳转呢?
我知道IIS也可以做到,只是那个机器安装IIS有问题,服务器重装代价太大,就想用别的办法了。
用一个tomcat我知道可以部署多的网站,单怎么实现通过来源域名的不同进行跳转呢?
#5
问题补充:
1、tomcat启动没有任何问,里边部署的网站都可以正常运行。启动顺序是先启动tomcat再启动apache的,也尝试过其他(先启动apache或者只启动apache)
2、目前的版本环境是 Apache2.2 apache-tomcat-6.0 jdk1.6.0_10 mod_jk-1.2.26
根据其他人提示可能是版本兼容的问题:也测试了 Apache2.0 apache-tomcat-5.0 mod_jk-1.2.14 错误依旧
具体产生错误的位置就在mod_jk.conf文件完成LoadModule之后的语句
JkWorkersFile conf/workers.properties #加载集群中的workers
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log #指定jk的日志输出文件
JkLogLevel warn #指定日志级别
排除版本兼容问题的话有可能是我配置文件写的有问题,比如workers.properties,希望大家多忙忙指导下
1、tomcat启动没有任何问,里边部署的网站都可以正常运行。启动顺序是先启动tomcat再启动apache的,也尝试过其他(先启动apache或者只启动apache)
2、目前的版本环境是 Apache2.2 apache-tomcat-6.0 jdk1.6.0_10 mod_jk-1.2.26
根据其他人提示可能是版本兼容的问题:也测试了 Apache2.0 apache-tomcat-5.0 mod_jk-1.2.14 错误依旧
具体产生错误的位置就在mod_jk.conf文件完成LoadModule之后的语句
JkWorkersFile conf/workers.properties #加载集群中的workers
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log #指定jk的日志输出文件
JkLogLevel warn #指定日志级别
排除版本兼容问题的话有可能是我配置文件写的有问题,比如workers.properties,希望大家多忙忙指导下
#6
现在你在服务器上装了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 端口号,在tomcat下server.xml配置,默认8009
worker.s2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.s2.type=ajp13
worker.s2.lbfactor=1 #server的加权比重,值越高,分得的请求越多
apache的虚拟主机如下配置
NameVirtualHost *
#www.abimoor.com站点
<VirtualHost *>
JkMount /* s1
ServerName www.abimoor.com
</VirtualHost>
#www.maple.com站点
<VirtualHost *>
JkMount /* s2
ServerName www.maple.com
</VirtualHost>
JkMountFile conf/uriworkermap.properties 这个去掉不要了
这个试试看可行。
既然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 端口号,在tomcat下server.xml配置,默认8009
worker.s2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址
worker.s2.type=ajp13
worker.s2.lbfactor=1 #server的加权比重,值越高,分得的请求越多
apache的虚拟主机如下配置
NameVirtualHost *
#www.abimoor.com站点
<VirtualHost *>
JkMount /* s1
ServerName www.abimoor.com
</VirtualHost>
#www.maple.com站点
<VirtualHost *>
JkMount /* s2
ServerName www.maple.com
</VirtualHost>
JkMountFile conf/uriworkermap.properties 这个去掉不要了
这个试试看可行。
#7
额 还是不行 郁闷呀....
我还尝试了只配置一个tomcat 也是失败,会不会和我的操作系统是win7有关呢?
或者还是我配置文件哪里有致命错误。
你们谁有配成功的例子,麻烦能否吧Apache conf目录下的所有文件发给我。我逐一比对一下吧。
Email:lingxiaoverygood@sina.com
我还尝试了只配置一个tomcat 也是失败,会不会和我的操作系统是win7有关呢?
或者还是我配置文件哪里有致命错误。
你们谁有配成功的例子,麻烦能否吧Apache conf目录下的所有文件发给我。我逐一比对一下吧。
Email:lingxiaoverygood@sina.com
#8
apache,tomcat 通过proxy...
#9
你搜索tomcat 域名绑定方面的可能更容易找到答案
#10
后来果然还是拿tomcat实现了... 谢谢各位的提示和帮助
不过apache的配置还是没搞明白,自己潜下心来看看书吧
<Host name="www.animoor.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/animoor" reloadable="true">
</Context>
</Host>
<Host name="www.maple.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/maple" reloadable="true">
</Context>
</Host>
<Host name="www.animoor.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/animoor" reloadable="true">
</Context>
</Host>
<Host name="www.maple.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:/tomcat5/webapps/maple" reloadable="true">
</Context>
</Host>
#11
注释惹的祸,#开头的注释语句要占一行~