0

通过在 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 &quot;%r&quot; %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

4

1 回答 1

0

只需删除“阀门”标签。它只允许“localhost”访问(127.0.0.1)。

于 2018-02-15T02:48:15.173 回答