无法访问 Tomcat 8 主机管理器(我可以正常访问管理器应用程序)

无法访问 Tomcat 8 主机管理器(我可以正常访问管理器应用程序)

在 Ubuntu 16.04 服务器上安装 Tomcat 8 后,我无法访问 Host Manager。我可以正常访问 Manager App。

我向位于目录中的文件中添加了manager-gui角色。admin-guitomcat-users.xml$CATALINA_HOME/conf/

<tomcat-users . . .>
    <role rolename="manager-gui"/>
    <role rolename="admin-gui"/>
    <user username="myusername" password="mypassword" roles="manager-gui,admin-gui"/>
</tomcat-users>

有任何想法吗?

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

答案1

我也遇到了同样的问题。解决方法如下:

查找并编辑主机管理器 web 应用 context.xml 文件:

 $CATALINA_HOME/webapps/host-manager/META-INF/context.xml

注释掉限制您仅访问本地主机的 Valve:

    <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" />
-->

保存并关闭文件。

好的做法是重新启动 Tomcat,但我不需要,访问是立即的。

OEL 7.4 上的 Tomcat 8.5.29,Java 1.8_162

答案2

我遇到了和你完全一样的问题。

我是这么解决的:

conf/tomcat-users.xml (保持不变)

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

在 conf/Catalina/localhost 下,我需要为每个上下文创建一个额外的文件:

管理器.xml

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

主机管理器.xml

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

之后,系统提示我输入用户名和密码,然后就成功了。

我读过一些文章建议编辑 /webapps/manager/META-INF/context.xml 和 /webapps/host-manager/META-INF/context.xml 中的阀门,但我认为上面的 localhost 优先。

答案3

我遇到了同样的问题,但我在 Windows 10 上运行的是 Tomcat 9。Marc Hearling 和 user3559338 解决方案均有效,但我会添加一些额外的见解。

第一个不寻常的事情是,如果我包含了 docBase 参数,解决方案就不起作用了。如果我删除该参数,我可以让 Manager App 和 Server Status 工作。但是,host-manager 不起作用。我最终发现,webapps 目录中缺少 host-manager 目录。我下载了 tomcat zip 文件,并能够恢复丢失的目录。我不确定它为什么会丢失。我最初使用 Windows 安装程序而不是使用 tomcat zip 文件安装 Tomcat。也许该安装程序没有安装 host-manager 目录。可能是我不小心删除了该文件夹,但我有点怀疑。在我让 Manager App、Server Status 和 host manager 工作后,我将 docBase 参数放回两个 xml 上下文文件中,这次它们起作用了。然后我尝试了一下 docBase,并注意到,例如,即使你输入了一个虚假的 docBase 地址,你仍然可以访问 host manager。这让我想知道当需要包含 docBase 参数时具体是什么情况。唯一可能导致 docBase 参数失败的情况是删除其中一个引号。这很合理,因为这会使 xml 无效。不幸的是,Tomcat 不会记录此类错误。

相关内容