一尘不染

从其他主机访问Tomcat Manager App

tomcat

我已经在远程服务器上安装了tomcat 9,启动它后,它正常运行了,我可以访问http://
host_name:port_num
并查看tomcat问候页面。但是,当我尝试打开管理器应用程序以查看已部署的应用程序时,拒绝403访问,我已经在tomcat用户xml中添加了角色,如下所示:

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="user" password="password" roles="admin,manager,manager-gui"/>

我看到的错误消息是:

默认情况下,只能从与Tomcat在同一台计算机上运行的浏览器访问主机管理器。 如果要修改此限制,则需要编辑主机管理器的context.xml文件。

我应该如何更改context.xml文件并获得对经理应用程序的访问权限?


阅读 443

收藏
2020-06-16

共1个答案

一尘不染

每个已部署的Web应用程序都有一个context.xml文件,该文件位于

$CATALINA_BASE/conf/[enginename]/[hostname]

(conf/Catalina/localhost by default)

并且具有与webapp相同的名称(manager.xml在这种情况下)。如果不存在文件,则使用默认值。

因此,您需要创建一个文件conf/Catalina/localhost/manager.xml并指定要允许远程访问的规则。例如,以下内容manager.xml将允许从所有计算机进行访问:

<Context privileged="true" antiResourceLocking="false" 
         docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

请注意,Valve元素的allow属性是与连接主机的IP地址匹配的正则表达式。其他Valve类满足其他规则(例如RemoteHostValve,匹配主机名)。

完成上述更改后,访问管理器URL时,将向您显示一个身份验证对话框。如果输入您提供的详细信息,则tomcat- users.xml应该可以访问Manager。

2020-06-16