【问题标题】:I want to integrate tomcat and apache using mod_jk for my grails application我想为我的 grails 应用程序使用 mod_jk 集成 tomcat 和 apache
【发布时间】:2013-07-19 08:46:41
【问题描述】:

我想为我的 grails 应用程序使用 mod_jk 集成 tomcat 和 apache。我希望我的静态资源由 apache 提供。资源必须在应用程序之外。我为 apache 做了如下设置:

ProxyPass /appName ajp://localhost:8009/appName
ProxyPassReverse /appName ajp://localhost:8009/appName

请告诉我如何做到这一点......

【问题讨论】:

    标签: apache grails tomcat7


    【解决方案1】:

    ProxyPassmod_proxy 而不是 mod_jk 使用的指令。

    如果你想使用mod_jk,请使用:

    JkMount /appName/* workerApp
    

    为此,您需要配置模块(/etc/apache2/mods-available/jk.load):

    LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
    
    JkWorkersFile /etc/apache2/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel debug
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
    

    然后添加一个工人(/etc/apache2/workers.properties):

    workers.tomcat_home={PATH_TO_TOMCAT}
    workers.java_home={PATH_TO_JVM}
    ps=/
    worker.list=workerApp
    worker.workerApp.port=8009
    worker.workerApp.host=localhost
    worker.workerApp.type=ajp13
    worker.workerApp.lbfactor=1
    

    确保该行没有在 Tomcat server.xml 中注释:

    <Connector port="8009" address= "127.0.0.1" enableLookups= "false" redirectPort= "8443" protocol= "AJP/1.3" />
    

    Apache Tomcat 连接器 - Reference Guidemod_jk 配置的良好信息来源。

    【讨论】:

    • 我有一些 mod_jk LoadModule jk_module modules/mod_jk.so JkWorkersFile {path_to_file} 的设置特定文件包含一个工人的所有必要的设置。但是现在我希望我的图像,来自任何外部目录的 css 都通过 apache 提供,以便从 tomcat 中删除所有静态内容。
    • 我明白了,为此只需使用 JkUnMount /resources/* workerApp (带有静态资源的路径)。您还可以仅指定文件类型,例如使用 JkUnMount /*.jpg workerApp Apache 将提供所有 jpg 图像(而不是 Tomcat)。
    • 您是否尝试过像 JkMount /* workerApp 那样在 root 上挂载?我没有设法让它在一周内工作。 (亚马逊 EC2,Tomcat 6)
    猜你喜欢
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2010-10-31
    • 1970-01-01
    • 2014-08-26
    相关资源
    最近更新 更多