在 Ubuntu 16.04 服务器上安装 Tomcat 8 后,我无法访问 Host Manager。我可以正常访问 Manager App。
我向位于目录中的文件中添加了manager-gui
角色。admin-gui
tomcat-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 不会记录此类错误。