一尘不染

无法访问Tomcat 8 Manager应用

tomcat

我刚刚在Ubuntu 14.04 VM上设置了Tomcat
8,但无法http://[hostname]:8080/manager/html从浏览器访问Manager应用程序。单击它后,我收到“
403访问被拒绝”错误。我正在将Tomcat作为服务在中的配置文件中定义/etc/init.d/tomcat8-dev。错误消息表明Tomcat最初设置为仅可从本地主机访问,但是由于它是托管VM,因此我无法在其上运行浏览器。

我已经tomcat- users.xml按照几个人的建议在文件中设置了一个用户。但是,没有提示我提供该用户的凭据,并且在默认页面上找不到任何类型的登录按钮。该文件当前如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
    version="1.0">

    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-status"/>

    <user username="(redacted)" password="(redacted)" 
        roles="manager-gui,manager-jmx,manager-status,manager-script"/>
</tomcat-users>

阅读此处的Tomcat文档页面之后,我还尝试过将<Valve />标签添加到context.xml看起来像这样的地方:

<Context privileged="true" antiResourceLocking="false"
    docBase="${catalina.home}/webapps/manager">

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" />
    <!--Another valve for my local machine's IP-->

</Context>

但是,一旦设置好privileged="true",无论我随后提供什么功能,使用浏览器连接到服务器时,我都会得到白页。

sudo service tomcat8-dev restart每当我进行更改时,我都会重新启动服务。

根据我在此处和其他网站上发布的帖子,我尝试了其他操作:

  • 我的tomcat用户的角色的各种配置
  • 添加address="0.0.0.0"server.xml里面<Connector />的标签
  • 使用initctl而不是根据此处的说明设置服务,由于某种原因,该服务不会在服务器上加载默认页面
  • 尝试使用其他浏览器,并禁用我的弹出窗口阻止程序

我没有尝试过任何工作。如果您想了解我的情况的更多详细信息,请告诉我。有什么建议么?

编辑: 问题是我编辑了错误的context.xml文件。正确的文件在中tomcat/webapps/manager/META- INF。我错误地对进行了更改tomcat/conf/context.xml


阅读 393

收藏
2020-06-16

共1个答案

一尘不染

AFAIK Tomcat在其默认配置中阻止除本地主机以外的所有主机对Manager App(manager / html)的访问。

为了能够使用http:// [主机名]:8080 / manager /
html
访问管理器GUI ,请在管理器应用程序的配置文件
server.xmlcontext.xml 中进行配置:

步骤1: 在[tomcat-install-dir] /conf/server.xml中,编辑 Connector
元素,并添加IP以及useIPVHosts =“ true”,即:

<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" 
           address="192.168.0.9" useIPVHosts="true" />

address="0.0.0.0" 可能不是您要在此处插入的内容,因为它会将管理器GUI公开给网络上的所有计算机。

步骤2: 在[tomcat-install-dir] /webapps/manager/META-INF/context.xml中,编辑
Valve 元素并添加IP:

<Context antiResourceLocking="false" privileged="true">

    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
           allow="192\.168\.0\.9|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

Tomcat 8上下文文档

privileged :设置为true允许此上下文使用容器servlet,例如管理器servlet。

antiResourceLocking
:如果为true,则Tomcat将阻止任何文件锁定。这将显着影响应用程序的启动时间,但允许在可能发生文件锁定的平台或配置上进行完整的Webapp热部署和取消部署

请注意,我没有添加另一个Valve元素,就像您在尝试的操作列表中提到的那样,而是我编辑了现有的元素并仅添加了IP(192.168.0.9)。

步骤3: 重新启动Tomcat,您应该能够使用localhost / 127.0.0.1以及您的主机名/ IP访问管理器GUI。


注意

关于您的 tomcat-users.xmlTomcat Manager HOW-
TO
指出:

建议不要向具有manager-gui角色的用户授予manager-script或manager-jmx角色。

因此,您可能想在 tomcat-users.xml中 引入两个用户,即:

  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-status"/>
  <user username="alice" password="whatever" roles="manager-script,manager-jmx"/>
  <user username="bob" password="whatever" roles="manager-gui,manager-status"/>
2020-06-16