【问题标题】:mod_jk problems with connecting apache2 and tomcat6连接 apache2 和 tomcat6 的 mod_jk 问题
【发布时间】:2009-11-29 20:28:39
【问题描述】:

我正在尝试配置 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

谢谢, - 瓦斯

【问题讨论】:

    标签: apache2 tomcat6 mod-jk


    【解决方案1】:

    您的工作人员称为 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
    

    【讨论】:

    • 嗨,这是帖子中的错误。感谢您对此进行调查,但将其更改为 A 也不起作用。所以你说它看起来正确吗? -瓦斯
    • 非常感谢!!昨天我没有好好思考。花了很多时间设置 apache、tomcat 和 mod_jk。很高兴它是复制粘贴错误。 \n 也感谢 mod_jk 与 mod_proxy 的澄清。根据我的阅读,我也认为 mod_jk 更好,但在阅读了 mod_jk 已死的文章后感到困惑。将坚持 mod_jk - Vas
    【解决方案2】:

    你加载了模块吗?

     LoadModule jk_module [path to it]
    

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

    【讨论】:

    • 是的。我有加载模块的指令——LoadModule jk_module modules/mod_jk.so
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多