<Context antiResourceLocking="false" privileged="true" >
<!--
Remove the comment markers from around the Valve below to limit access to
the manager application to clients connecting from localhost
-->
<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>
2条答案
按热度按时间taor4pac1#
在
[tomcat]/conf/Catalina/[hostname]
中创建一个文件manager.xml
。所以如果你的主机名是
www.yourdomainname.com
,而tomcat在opt/tomcat7/
中,那就是:在这个新创建的
manager.xml
中,您将RemoteAddrValve
放在Context中:用管道字符分隔多个ip地址。
我选择
denyStatus=404
,这样可能的入侵者就不会知道管理器的存在。重新启动Tomcat。
更新3/2020
如果Tomcat位于代理服务器之后,请求将全部来自该代理服务器,因此您需要告诉代理服务器将远程地址转发给Tomcat(在Nginx中,您将包括一行
proxy_set_header x-forwarded-for $remote_addr;
)。此外,您需要告诉Tomcat通过在Engine或Host块中包含
RemoteIpValve
来监视转发的头:cclgggtu2#
在Tomcat 8中,我发现
C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\manager\META-INF\context.xml
中已经有了RemoteAddrValve,我只需要取消注解它。我在阀门上添加了@acdhirr的建议,以拒绝状态
denyStatus="404"
,这也起作用了。