我正在尝试配置mod_jk以将请求转发到我在tomcat中运行的webapp。 (我在其他地方读到mod_proxy_ajp是要走的路,但是想先弄明白这一点)。我是tomcat和mod_jk的新手。

我尝试访问 - http://www.example.com/test/index的.jsp

配置mod_jk后,我的apache日志出现400错误。当我在tomcat中直接测试时,webapp工作正常。在mod_jk日志文件中,我看到它正在尝试映射A / index.jsp,但它失败了400.所以我看到mod_jk被调用但不知何故modjk没有看到webapp。

非常感谢任何帮助

我在SuSe Linux 11上,并且在同一个盒子上运行apache和tomcat。

我的httpd.conf是一个单片文件。在其中我添加了以下内容 -

<IfModule jk_module>
Alias /test/ "/srv/tomcat6/webapps/A"
JkWorkersFile   /usr/local/apache2/conf/workers.properties
JkShmFile       /usr/local/apache2/logs/mod_jk.shm
JkLogFile       /usr/local/apache2/logs/mod_jk.log
JkLogLevel      debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JKMount        /test/ A1
JkMount     /test/* A1
JkOptions       +ForwardSSLCertChain
</IfModule>

我在workers.properties中有以下内容 -

#Define 1 real worker using ajp13
worker.list=A
#Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.ajp13.lbfactor=50
worker.ajp13.cachesize=10
worker.ajp13.cache_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300

谢谢,   - Vas

有帮助吗?

解决方案

您的工作人员被称为A,但您的JkMount会映射到A1。你应该有这样一个条目,

JkMount / test / * A

我使用了mod_jk和mod_proxy_ajp。在高负载下,mod_jk表现更好,因为mod_jk连接更持久。 mod_proxy确实更容易设置。

编辑:工作人员配置也不正确。它应该是这样的,

#Define 1 real worker using ajp13
worker.list=A
#Set properties for worker1 (ajp13)
worker.A.type=ajp13
worker.A.host=localhost
worker.A.port=8009
worker.A.lbfactor=50
worker.A.cachesize=10
worker.A.cache_timeout=600
worker.A.socket_keepalive=1
worker.A.socket_timeout=300

其他提示

你加载了模块吗?

 LoadModule jk_module [path to it]

如果指令已经加载或编译,我将相信该指令。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top