外网配置好manager用户以后访问manager/status页面结果提示403错误还有一堆英文错误,第一句话明显标示了是要在context.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的,allow中的内容是正则表达式,表示IPv4和IPv6的本机环回地址,也就是说本地才可以访问,其他IP是不可以访问的。
找到原因了,那么去掉这段代码即可,任意IP都可以访问。
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
但是这也就带来了不安全因素,我们可以只允许特定网段202.136.60.*访问管理页面,那么改成这样就可以:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="202.136.60.*" />
</Context>
当然你也可以使用Nginx做前端代理访问,然后就不用修改任何配置了。
最后重启Tomcat就可以访问了。