如何在Mac OS X上安装mod_jk

12

我正在寻找在Mac OS X 10.7 Lion或更高版本上正确安装mod_jk的方法。目标是在Apache HTTPD后面测试Tomcat。

到目前为止,我发现唯一的安装方式是下载源代码,然后在控制台中进行配置,执行make和make install命令。

这并不非常实用,因为我需要自己管理mod_jk的安装和配置。例如,在需要时可能会忘记删除mod_jk。无论如何,我认为应该有更加友好的方式来安装mod_jk,比如某种DMG包。

我还发现mod_jk可在OS X Server上使用。实际上它已经在我的开发机器上安装了,但只适用于服务器。

<IfDefine MACOSXSERVER>
...
#LoadModule jk_module libexec/apache2/mod_jk.so
...
</IfDefine MACOSXSERVER>

也许有一个mod_jk的软件包可供开发人员使用,他们不需要安装OS X服务器或其他方式。

更新

  1. mod_proxy_ajp是一种替代方案。主要优点:它与Apache和Mac OS X捆绑在一起。
  2. 我现在在我的配置中测试了mod_proxy_ajp,可以说它甚至更好-因为不需要额外的配置。 mod_proxy_ajp可以在Mac上直接使用,也可能在linux服务器上使用,你也不需要使用额外的workers.properties文件。

这是我的配置示例:

<VirtualHost *:80>
    ServerAdmin me@me.com
    DocumentRoot "/Users/me/Sites/projekt"
    ServerName projekt.local

    <Directory "/Users/me/Sites/projekt">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    <Proxy *>
      AddDefaultCharset Off
      Order deny,allow
      Allow from all
    </Proxy>

    ProxyPass /coolapp ajp://localhost:8009/coolapp
    ProxyPassReverse /coolapp ajp://localhost:8009/coolapp

    ErrorLog "/private/var/log/apache2/projekt.local-error_log"
    CustomLog "/private/var/log/apache2/projekt.local-access_log" common    
</VirtualHost>

以上配置了AJP连接器的Tomcat就是你所需要的,太棒了!

参考:

  1. 在OS X上安装mod_jk - http://www.bartbusschots.ie/blog/?p=1347
  2. 比较mod_jk和mod_proxy_ajp apache到tomcat: mod_jk vs mod_proxy
  3. 如何配置mod_proxy_ajp与Tomcat?

请给出建议。


你所指的“配置文件”是哪个?你展示的文本,以 <VirtualHost *:80> 开头的部分是放在 httpd.conf 中还是其他地方? - murray
我不明白 "/coolapp" 指的是什么。它与 DocumentRoot 设置有什么关系? - murray
LoadModule 行的语法是什么,它用于 httpd.conf 中的 mod_proxy_ajp?也就是说,在 LoadModule xxx modules/mod_proxy_ajp.so 中的 "xxx" 是什么? - murray
回答关于LoadModule语法的问题,似乎可行的是:LoadModule proxy_ajp_module modules/mod_proxy_ajp.so - murray
回答我的问题,似乎可行的是:LoadModule proxy_ajp_module modules/mod_proxy_ajp.so - murray
显示剩余3条评论
1个回答

14
你可以尝试使用mod_proxy_ajp,它与mod_jk一样支持AJP13和负载均衡功能,但是它已经预装在Mac OS X中了。

很酷 - 我不知道这个 - 我会去查一下。你怎么比较它们? - Vladimir
看起来这里有区别 - https://dev59.com/0HNA5IYBdhLWcg3wH6EW - Vladimir
太棒了 - 它可以直接使用,而且配置起来更加简单,例如不需要额外的workers.properties文件。谢谢@Philippe。看起来是Seaside社区真正的Philippe Marschall的回答 - 太酷了。 - Vladimir
谢谢,我在Mac上也无法使用mod_jk。但是这个方法直接就奏效了。 - Kai Mattern
似乎High Sierra的mod_proxy_ajp出了问题。发送到服务器的一些XML数据包含一个前导特殊字符,这会导致Tomcat中的XML解析器失败。我需要切换到HomeBrew httpd来解决这个问题。 - Bertl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接