帮助中心 >  技术知识库 >  网站相关 >  程序开发 >  Tomcat的managerhost页面403的原因和解决办法

Tomcat的managerhost页面403的原因和解决办法

2017-03-13 23:31:34 3509

版本:Tomcat 8.5.8

问题:新安装的tomcat,用其他机器访问tomcat的Server Status、Manager App、Host Manager三个页面均显示403(本机访问没有问题),conf/tomcat-users.xml里已添加配置:

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<user username="tomcat" password="qazwsx" roles="manager-gui,admin-gui"/>

 

重启之后,还是403,甚至在尝试使用多种解决方法的时候还出现过404(原因不明)

 

查找网上解决办法无果,大部分网上的文章都只提到了在tomcat-users.xml里添加上面的语句,无法解决,通过查阅官方文档,英文真的烂(用翻译软件,看得一知半解),终于找到真正原因所在。

 

打开webapps下的host-manager和manager,都有一个共同的文件夹META-INF,里面都有context.xml,这个文件的内容是:

<Context antiResourceLocking="false" privileged="true" >

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"

         allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />

</Context>

通过查看官方文档,知道,这段代码的作用是限制来访IP的,127.d+.d+.d+|::1|0:0:0:0:0:0:0:1,是正则表达式,表示IPv4和IPv6的本机环回地址,所以这也解释了,为什么我们本机可以访问管理界面,但是其他机器确?403。

 

找到原因了,那么修改一下这里的正则表达式即可,比如我们只允许内网网段192.168.88访问管理页面,那么改成这样就可以:

<Context antiResourceLocking="false" privileged="true" >

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"

         allow="192.168.88.*" />

</Context>

 

修改完毕,关闭浏览器,重新打开tomcat,问题解决!

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: