【问题标题】:Tomcat 7 RemoteHostValve not working for localhostTomcat 7 RemoteHostValve 不适用于本地主机
【发布时间】:2017-01-09 12:38:58
【问题描述】:

我正在尝试通过使用此阀门来限制对 Tomcat 7 服务器的访问:org.apache.catalina.valves.RemoteHostValve。

它对其他主机工作正常,但我无法使用 localhost (http://localhost:8080) 在本地访问服务器。

这是阀门:

<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="host2.xy.i|host2.xy.i|localhost"/>

有什么想法吗?

【问题讨论】:

    标签: server tomcat7 server.xml


    【解决方案1】:

    对于这个功能,主机名查找是需要的。 你检查你设置了吗?

    <Connector enableLookups="true" />
    

    如果它不适用于主机名,您可以通过以下方式达到相同的结果:

    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="127\..*"/>
    

    但是检查你是否有 localhost V6 IP,这个例子只匹配 ipv4

    【讨论】:

    • 您好,感谢四位您的回答。我已将 enableLookups 设置为 true。据我了解,在使用 RemoteAddrValve 时,您不能同时使用 RemoteHostValve。但我想按名称解析主机。现在我正在使用 RemoteAddrValve,只要 ips 不改变它就可以工作。但如果有人通过 WiFi 连接,我们就会遇到问题。
    • 如果您认为 AddrValve 和 HostValve 冲突是正确的,那么这将是我的问题的答案。我应该知道在 apache 中可以在同一个配置中拥有 Hosts 和 Addr。
    • @Radon8472 使用 RemoteHostValue 我只想允许 localhost:8080/example。我的意思是只有本地主机。那我应该写什么呢?
    • hmm,此allow 属性仅受RemoteAddr 限制。我认为您需要添加目录保护。例如。您为 DocumentRoot deny all 定义,然后为文件夹 /example allow from localhost 定义。 Unfurtunally我知道如何在apache httpd中做到这一点,但目前我不知道tomcat的等价物。也许你会找到这个链接背后的信息:grokbase.com/t/tomcat/users/118yzzccjs/deny-access-to-directory
    猜你喜欢
    • 2016-04-17
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2016-01-14
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多