【问题标题】:Apache .htaccess whitelist doesn't block Tomcat with Mod_jkApache .htaccess 白名单不会使用 Mod_jk 阻止 Tomcat
【发布时间】:2012-08-16 16:06:49
【问题描述】:

我的问题是,我最近使用 Apache2.2 前端设置了一个 Tomcat7 应用程序容器。由于该项目仍在开发中,我正在通过在 .htaccess 中为域设置的 IP 白名单控制访问。

我通过 AJP13 为 Tomcat 设置了 mod_jk,它工作得非常好,除了 .htaccess 不会阻止 Tomcat 的转发。换句话说,如果您从“黑色”IP 输入 www.mydomain.com,您将被转发到错误页面,但如果您输入 www.mydomain.com/AppContext,您会通过 Apache 进入 Tomcat

我开始在 Tomcat 中使用 urlrewritefilter,但由于某种原因它不起作用。 我想知道是否有任何方法可以设置 .htaccess 或 apache 来阻止转发到 Tomcat 的请求,类似于对 Apache 的请求?

还注意到像这样使用它时速度会急剧下降,我们在使用 Apache 作为前端时很常见吗?

【问题讨论】:

    标签: apache .htaccess tomcat mod-jk


    【解决方案1】:

    .htaccess 文件仅在 Apache 使用基于 的配置(在 httpd.conf 中)时才有效。在 mod_jk 的情况下,匹配的请求(由 JkMount 指令指定)将简单地转发到 AJP 连接器。

    改用<Location> 控制访问:

    <Location "/AppContext">
        Order Deny,Allow
        Deny from all
        Allow from .myCompany.local
    </Location> 
    

    详情请见&lt;Location&gt; Directive&gt;

    【讨论】:

    • 优秀的解决方案,谢谢!您对我的问题的第二部分有何看法?我的意思是,由于端口转发,预计会有某种延迟,但我认为这不会引起注意。 (我有一个 2 核 2GB RAM VPS)
    • 不客气!在正常情况下,不会出现明显的减速——Apache + Tomcat 是标准的生产环境。请务必删除 URL 重写实验的任何剩余部分并再次检查。还有一点:将JkLogLevel(在mod_jk.conf 中)从info 更改为error。它的默认设置会生成大量日志行,这会减慢操作速度。
    • 很棒的解决方案!我正在考虑在我们的应用程序中用 Java 在 Tomcat 站点上做一些事情,但这解决了这个问题,而不会浪费请求处理路径中超出前端 Apache 网络服务器之外的任何资源 - 更好,更容易,并且在 Tomcat 端不使用 CPU。!
    【解决方案2】:

    我遇到了同样的问题,并找到了一个也可以解决您的问题的解决方案。 使用像 NginxSquid 这样的反向代理服务器来重定向流量 Apache Tomcat。他们都可以使用 htpassword 进行身份验证,因此可以满足您的需求。如果你想使用 Apache 作为前端,那么后端可以是 nginx,在经过适当的身份验证后,它又会重定向到 Tomcat。不过,它可能会影响性能。

    https://www.digitalocean.com/community/tutorials/how-to-set-up-http-authentication-with-nginx-on-ubuntu-12-10

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      相关资源
      最近更新 更多