server.xmlファイルの各ドメインにHostエントリを追加することで、複数のホスト名のWebアプリケーションをホストするTomcat7(7.0.82)を設定しました。これは期待どおりに動作します。以下はserver.xmlの私のエンジン定義です:Tomcat7は複数のホスト構成のマネージャーアプリケーションへのアクセスを許可します
<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
を通じて直接アクセスする際に管理者のアプリは動作しますが、私はyyy.domain.com/manager
の代替ホストのためにすぐに拒否されたデフォルトの403のアクセスを取得します;ログインプロンプトは表示されません。
manager.xmlファイルのtomcat-users.xmlファイルを参照していますか、manager.xmlファイルの参照をEngine
に定義されているUserDatabase
に何らかの方法で作成する必要がありますか?