我刚刚在Ubuntu 14.04 VM上设置了Tomcat 8,我无法http://[hostname]:8080/manager/html从浏览器访问Manager App .点击它后,我收到"403 Access Denied"错误.我正在运行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>
Run Code Online (Sandbox Code Playgroud)
在这里阅读了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>
Run Code Online (Sandbox Code Playgroud)
但是,一旦我设置privileged="true",当我使用浏览器连接到服务器时,无论后来提供的阀门如何,我都会得到一个空白的白页.
sudo service tomcat8-dev restart每当我做出更改时,我都会重启我的服务.
我根据我在这里和其他网站上发布的帖子尝试过的其他事情:
address="0.0.0.0"到标签server.xml内部<Connector />initctl而不是根据此处的说明设置服务,这些说明由于某种原因不会在我的服务器上加载默认页面我没有尝试过任何工作.如果您想了解有关我情况的更多详情,请与我们联系.有什么建议?
编辑:问题是我正在编辑错误的context.xml文件.正确的文件在tomcat/webapps/manager/META-INF.我错误地进行了更改tomcat/conf/context.xml.
Rud*_*eld 18
AFAIK Tomcat阻止访问所有主机的Manager App(manager/html),但默认配置为localhost.
为了能够使用http:// [hostname]:8080/manager/html访问管理器GUI,请在配置文件server.xml和manager应用程序的context.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" />
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
privileged:设置为true以允许此上下文使用容器servlet,例如manager servlet.
antiResourceLocking:如果为true,Tomcat将阻止任何文件锁定.这将显着影响应用程序的启动时间,但允许在可能发生文件锁定的平台或配置上进行完全webapp热部署和取消部署
请注意,我没有像您在尝试的事项列表中提到的那样添加另一个Valve元素,而是编辑现有的,只需添加我的IP(192.168.0.9).
步骤3:重新启动Tomcat,您应该能够使用localhost/127.0.0.1以及主机名/ IP访问管理器GUI.
旁白:关于tomcat-users.xml,Tomcat Manager HOW-TO声明:
建议永远不要将manager-script或manager-jmx角色授予具有manager-gui角色的用户.
所以你可能想在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"/>
Run Code Online (Sandbox Code Playgroud)
如果您想在所有机器上访问管理器应用程序,您可以简单地做。转到 {Tomcat_install_DIR}/webapps/manager/META-INF/ 并编辑 context.xml put
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59004 次 |
| 最近记录: |