Can';t访问Tomcat 8管理器应用程序
我刚刚在Ubuntu14.04虚拟机上安装了Tomcat 8,无法从浏览器访问位于Can';t访问Tomcat 8管理器应用程序,tomcat,tomcat8,Tomcat,Tomcat8,我刚刚在Ubuntu14.04虚拟机上安装了Tomcat 8,无法从浏览器访问位于http://[hostname]:8080/Manager/html的Manager应用程序。我一点击它就会出现“403拒绝访问”错误。我将Tomcat作为一个服务运行,该服务在/etc/init.d/tomcat8 dev的配置文件中定义。错误消息表明Tomcat最初设置为只能从localhost访问,但由于它是一个托管的VM,我无法在其上运行浏览器 我已经按照一些人的建议在tomcat users.xml文件
http://[hostname]:8080/Manager/html
的Manager应用程序。我一点击它就会出现“403拒绝访问”错误。我将Tomcat作为一个服务运行,该服务在/etc/init.d/tomcat8 dev
的配置文件中定义。错误消息表明Tomcat最初设置为只能从localhost访问,但由于它是一个托管的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>
<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服务tomcat8 dev restart
重新启动我的服务
根据我在这里和其他网站上读到的帖子,我尝试了其他事情:
- 我的tomcat用户的各种角色配置
- 将
添加到address=“0.0.0.0”
内的server.xml
标记中 - 使用
而不是根据说明设置服务,因为某些原因,它不会在我的服务器上加载默认页面initctl
- 尝试不同的浏览器,并禁用我的弹出窗口阻止程序
context.xml
文件。正确的文件位于tomcat/webapps/manager/META-INF
中。我错误地更改了tomcat/conf/context.xml
您应该更改:
docBase="${catalina.home}/webapps/manager"
致:
这是因为您不使用从上游分发的Tomcat,而是使用Ubuntu附带的Tomcat。AFAIK Tomcat在默认配置中阻止除localhost之外的所有主机访问Manager应用程序(Manager/html) 要能够使用访问manager GUI,请在manager应用程序的配置文件server.xml和context.xml中配置: 步骤1:在[tomcat install dir]/conf/server.xml中编辑连接器元素并添加您的IP以及useIPVHosts=“true”,即:
address=“0.0.0.0”
可能不是您要在此处插入的内容,因为它将manager GUI公开给网络上的所有计算机
步骤2:在[tomcat安装目录]/webapps/manager/META-INF/context.xml中,编辑阀元件并添加IP:
从
privileged:设置为true以允许此上下文使用容器
servlet,比如managerservlet
反资源锁定:如果为真,Tomcat将阻止任何文件锁定。这将显著影响应用程序的启动时间,
但允许在平台或服务器上进行完整的webapp热部署和取消部署
可能发生文件锁定的配置
请注意,我没有像您在尝试过的事情列表中提到的那样添加其他阀元件,而是编辑现有的阀元件,只添加我的IP(192.168.0.9)
步骤3:重新启动Tomcat,您应该能够使用localhost/127.0.0.1以及主机名/IP访问manager GUI
注 关于tomcat-users.xml,声明如下: 建议永远不要授予manager脚本或manager jmx 具有manager gui角色的用户的角色 因此,您可能希望在tomcat-users.xml中引入两个用户,即:
我想这可能对你们所有人都有帮助,因为这对我来说很有用 这里我使用的是Apache tomcat 8:
root@akash-LIFEBOOK-A555:/opt/apache-tomcat-8.5.20/bin# ./version.sh
Using CATALINA_BASE: /opt/apache-tomcat-8.5.20
Using CATALINA_HOME: /opt/apache-tomcat-8.5.20
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.20/temp
Using JRE_HOME: /DATA/jre1.8.0_131/
Using CLASSPATH: /opt/apache-tomcat-8.5.20/bin/bootstrap.jar:/opt/apache-tomcat-8.5.20/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.20
Server built: Aug 2 2017 21:35:49 UTC
Server number: 8.5.20.0
OS Name: Linux
OS Version: 4.4.0-98-generic
Architecture: amd64
JVM Version: 1.8.0_131-b11
JVM Vendor: Oracle Corporation
编辑tomcat-user.xml并添加角色和用户
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="admin-gui"/>
<user username="admin" password="password" roles="manager-gui,manager-status,manager-script,manager-jmx,admin-gui"/>
我也收到了同样的问题,我首先在config/tomcat-users.xml中添加了角色user和passowrd,然后在webapps/manager/META-INF/context.xml中允许我的公共ip
最初,为使用同一台机器的管理器添加了本地ip 127。如果您想在所有机器上访问manager应用程序,只需添加您的ip即可。转到{Tomcat_install_DIR}/webapps/manager/META-INF/并编辑context.xml
更新“apache-tomcat-8.5.5\webapps\manager\META-INF\context.xlm”文件。取消对值标记的注释。然后重新启动服务器 context.xml文件
Before :
<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>
After change :
<Context antiResourceLocking="false" privileged="true" >
</Context>
for auto deployment: go to 'apache-tomcat-8.5.5\conf\context.xml' and add antiResourceLocking="true" in 'Context' tag
之前:
变更后:
对于自动部署:转到“apache-tomcat-8.5.5\conf\context.xml”并在“context”标记中添加antiresourcelock=“true”
对于我来说,除了在tomcat-users.xml中放置具有管理员角色的管理员用户,我还必须在/webapps下修改manager和host manager应用程序的2/META-INF/context.xml文件,如下所示:
127->\d+
因此,任何外部PC都可以通过浏览器访问其管理器站点谢谢您的帮助!结果是我编辑了错误的context.xml文件。我将细节编辑到原始问题中。@ecliptica很高兴听到它现在适合您-不客气。@ronan Quillevere我在tomcat9+java9上也面临同样的问题,正如建议中所说的。还添加了webapps/manager/META-INF/context.xml中提到的更改,但没有起作用。请建议我使用Tomcat9进行了回答中建议的更改,但仍然无法从任何浏览器运行Manager应用程序,@GouthamNithyananda也体验到了用流浪主机的IP地址替换主机名。要更改哪个文件?听起来你解决了这个问题。。。我们能把它变成答案中的一组步骤吗?
Before :
<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>
After change :
<Context antiResourceLocking="false" privileged="true" >
</Context>
for auto deployment: go to 'apache-tomcat-8.5.5\conf\context.xml' and add antiResourceLocking="true" in 'Context' tag