通过在 server.xml 文件中为每个域添加主机条目,我已将 Tomcat7 (7.0.82) 配置为托管多个主机名的 Web 应用程序。这按预期工作。下面是我在 server.xml 中的引擎定义:
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
</Host>
<Host appBase="xxx-webapps" autoDeploy="true" name="xxx.domain.com" unpackWARs="true">
</Host>
<Host appBase="yyy-webapps" autoDeploy="true" name="yyy.domain.com" unpackWARs="true">
</Host>
</Engine>
现在我想为每个主机启用对管理器应用程序的访问。
一个用户被添加到 conf/ 中的 tomcat-users.xml 文件中。
我为每个主机创建了一个 manager.xml 文件,并将这些文件放在 /conf 中的相应域名子文件夹中,例如 \conf\Catalina\yyy.domain.com\manager.xml。manager.xml 文件的内容相同,仅包含以下信息:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="${catalina.home}/webapps/manager"
antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" />
</Context>
直接通过管理器应用程序访问它时,它可以工作localhost/manager
,但是对于备用主机,我立即得到默认的 403 访问被拒绝yyy.domain.com/manager
;不显示登录提示。
我是要从 manager.xml 文件中引用 tomcat-users.xml 文件,还是应该以某种方式在 manager.xml 文件中创建对 .xml 文件中UserDatabase
定义的引用Engine
?