我已经在远程服务器上安装了tomcat9,启动后,它被带到了罚款,我可以访问和看到tomcathello页面。但是当我试图打开管理器应用程序来查看我部署的应用程序时,我得到了403访问拒绝,我已经在tomcat用户xml中添加了角色,如下所示:
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="user" password="password" roles="admin,manager,manager-gui"/>
我看到的错误消息是:
- 默认情况下,只能从与Tomcat运行在同一台计算机上的浏览器访问Host Manager。如果您希望修改此限制,则需要编辑Host Manager的context.xml文件。*
我应该如何更改context.xml文件并访问管理器应用程序?
6条答案
按热度按时间huwehgph1#
对于Tomcat v8.5.4及更高版本,文件
<tomcat>/webapps/manager/META-INF/context.xml
已被调整:更改此文件以注解
Valve
:之后,刷新浏览器(不需要重启Tomcat),就可以看到管理器页面。
ncgqoxb02#
每个部署的webapp都有一个
context.xml
文件,并且与webapp具有相同的名称(在本例中为
manager.xml
)。如果不存在文件,则使用默认值。因此,您需要创建一个文件
conf/Catalina/localhost/manager.xml
,并指定要允许远程访问的规则。例如,manager.xml
的以下内容将允许从所有计算机访问:请注意,
Valve
元素的allow属性是一个正则表达式,它匹配连接主机的IP地址。所以用你的IP地址代替你的.IP.ADDRESS.HERE(或其他有用的表达)。其他
Valve
类满足其他规则(例如,RemoteHostValve
用于匹配主机名)。Tomcat的早期版本使用阀类org.apache. Catalina .valves.RemoteIpValve进行IP地址匹配。完成上述更改后,在访问管理器URL时,应该会显示一个身份验证对话框。如果您输入您在
tomcat-users.xml
中提供的详细信息,您应该可以访问Manager。qyzbxkaa3#
要从不同的机器访问tomcat管理器,您必须遵循以下步骤:
1.更新conf/tomcat-users.xml文件中的用户和部分角色:
这里admin用户正在分配roles=“manager-gui,manager-script,manager-jmx,manager-status”。
这里tomcat的用户名和密码是:管理员
2.更新webapps/manager/META-INF/context.xml文件(允许IP地址):
默认配置:
在Valve中,它只允许本地机器IP以**127.\d +.\d+.\d+**开始。
2.a:允许特定IP:
在这里,您只需替换**| 您的.IP.地址.这里**与您的IP地址
2.b:允许所有IP:
这里使用**allow=".*"**表示允许所有IP。
谢谢您的支持:)
5q4ezhmt4#
以下两种配置对我来说是有效的。
1./webapps/manager/META-INF/context.xml和/webapps/host-manager/META-INF/context. xml的context.xml
polhcujo5#
以下是我在AWS Linux 2上使用的sed命令,以通过AWS EC2用户数据脚本实现此功能:
注意:这允许从所有IP“.”访问,如果您不希望这样,请将最后一个to sed命令中的“.”更改为您想要的任何IP。
将以下内容更改为您想要的内容:
另外,请将/abcd替换为tomcat安装的位置,以更新tomcat安装的路径:
指令集:
jobtbby36#
因为我不得不艰难地学习默认的
\etc\tomcat\server.xml
文件(至少在OpenSUSE v15.2上的v9.0.36)已经包含了管理器和主机管理器应用程序的<Context ...>
和<Valve ...>
定义!这些显然会推翻您在其他地方定义的任何context.xml
或manager.xml
文件。默认情况下,他们限制访问localhost,这正是我所看到的。||- (因此,需要调整server.xml
中的设置,或者在那里删除/注解它们,然后可以像以前一样添加其他响应中提到的文件。