我已经在远程服务器上安装了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文件并获得对经理应用程序的访问权限?
每个已部署的Web应用程序都有一个context.xml文件,该文件位于
context.xml
$CATALINA_BASE/conf/[enginename]/[hostname] (conf/Catalina/localhost by default)
并且具有与webapp相同的名称(manager.xml在这种情况下)。如果不存在文件,则使用默认值。
manager.xml
因此,您需要创建一个文件conf/Catalina/localhost/manager.xml并指定要允许远程访问的规则。例如,以下内容manager.xml将允许从所有计算机进行访问:
conf/Catalina/localhost/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,匹配主机名)。
Valve
RemoteHostValve
完成上述更改后,访问管理器URL时,将向您显示一个身份验证对话框。如果输入您提供的详细信息,则tomcat- users.xml应该可以访问Manager。
tomcat- users.xml