我在远程服务器上的 ubuntu 16.04 上安装了 tomcat 8。我想从本地计算机访问 GUI 管理器应用程序。访问页面 /manager/html 时,我收到 403 访问被拒绝页面,其中包含以下信息:
默认情况下,仅可通过与 Tomcat 在同一台计算机上运行的浏览器访问主机管理器。如果您希望修改此限制,则需要编辑主机管理器的 context.xml 文件。
并要求将以下内容添加到此文件:
/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="username" password="password" roles="manager-gui"/>
我已经完成了,并重新启动了 tomcat:
sudo systemctl restart tomcat
但我收到相同的错误页面。
知道我错过了什么吗?
谢谢
答案1
对于Tomcat v8.5.4及以上版本,该文件<tomcat>/webapps/manager/META-INF/context.xml
做了调整:
<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" />
</Context>
更改此文件以注释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" />
-->
</Context>
之后刷新浏览器(不需要重启Tomcat),即可看到管理器页面。
答案2
要编辑的 context.xml 文件,由错误页面调用:
$CATALINA_HOME/webapps/manager/META-INF/context.xml
假设 CATALINA_HOME 是 tomcat 的安装位置。这是管理器 Web 应用程序的上下文配置文件。在此文件中,您通常会发现:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
在这一行中,“允许“字段包含允许访问管理器 Web 应用程序的以管道分隔的 IP 地址列表。在此字段值的末尾添加一个管道和您的 IP 地址。
此后,只需刷新浏览器,无需重新启动 tomcat。
答案3
适用于 Tomcat 版本 7 及更高版本。
从 Tomcat 7 开始,一些内容发生了变化,以提高 Tomcat 的安全性。编辑tomcat-用户.xml文件您需要使用现有文件并保留 tomcat-users xmlns 信息,然后简单添加:
<?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-gui"/>
<user username="SOMEUSER" password="YOURPASS" roles="manager-gui"/>
请注意,管理器现在是 manager-gui,而不仅仅是管理器。有几种不同的管理器类型:
manager-gui
manager-script
manager-status
manager-jmx
最后一步——允许访问
默认情况下,只能通过与 Tomcat 在同一台计算机上运行的浏览器访问主机管理器。如果您希望修改此限制,则需要编辑tomcat/webapps/管理器/META-INF/context.xml允许所有 IP 或仅允许你的 IP。
以下配置允许所有 IP 访问管理器:
代替
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"
和
allow=".*"
例子:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow=".*" />
</Context>
最后 - 重新启动 tomcat,然后导航到 yourdomain.com/manager/html