web-dev-qa-db-ja.com

Tomcat 8 Managerアプリにアクセスできません

Ubuntu 14.04でTomcat 8をセットアップしたところVMで、ブラウザーからhttp://[hostname]:8080/manager/htmlでマネージャーアプリにアクセスできません。 "403アクセスが拒否されました「クリックするとすぐにエラーが発生します。Tomcatを/etc/init.d/Tomcat8-devの設定ファイルで定義されたサービスとして実行しています。ホストされた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>

Tomcatドキュメントページ here を読んだ後、次のような<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>

ただし、privileged="true"を設定するとすぐに、後で提供するバルブに関係なく、ブラウザーでサーバーに接続すると空白の白いページが表示されます。

変更を加えるたびに、Sudo service Tomcat8-dev restartでサービスを再起動します。

私がここで読んだ投稿や他のサイトに基づいて試した他のこと:

  • Tomcatユーザーのさまざまな役割の構成
  • address="0.0.0.0"タグ内のserver.xml<Connector />を追加
  • 指示 here に基づいてサービスを設定する代わりにinitctlを使用します。これは何らかの理由でサーバーにデフォルトページをロードしません
  • さまざまなブラウザを試して、ポップアップブロッカーを無効にする

私が試したことは何もありません。私の状況について詳しく知りたい場合はお知らせください。助言がありますか?

Edit:問題は、間違ったcontext.xmlファイルを編集していたことです。正しいファイルはTomcat/webapps/manager/META-INFにあります。 Tomcat/conf/context.xmlに誤って変更を加えていました。

14
Ecliptica

AFAIK Tomcatは、デフォルト構成のlocalhostを除くすべてのホストのマネージャーアプリ(manager/html)へのアクセスをブロックします。

http:// [hostname]:8080/manager/html を使用してマネージャーGUIにアクセスできるようにするには、構成ファイルserver.xmlおよびマネージャーアプリケーションの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" />

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>

Tomcat 8コンテキストドキュメント から

privileged:trueに設定すると、このコンテキストがマネージャーサーブレットなどのコンテナーサーブレットを使用できるようになります。

antiResourceLocking:trueの場合、Tomcatはファイルのロックを防ぎます。これは、アプリケーションの起動時間に大きく影響しますが、ファイルロックが発生する可能性のあるプラットフォームまたは構成で完全なwebappホットデプロイおよびアンデプロイを許可します

あなたが試したもののリストで言及したように別のValve要素を追加するのではなく、代わりに既存のValve要素を編集し、自分のIP(192.168.0.9)を追加することに注意してください。

ステップ3:Tomcatを再起動すると、localhost/127.0.0.1とホスト名/ IPを使用してマネージャーGUIにアクセスできるはずです。


余談:Tomcat-users.xmlに関して、 Tomcat Manager HOW-TO 状態:

Manager-guiロールを持つユーザーにmanager-scriptロールまたはmanager-jmxロールを付与しないことをお勧めします。

そのため、Tomcat-users.xmlで2人のユーザーを紹介したい場合があります。

  <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"/>
17
deepblue

すべてのマシンでマネージャーアプリにアクセスする場合は、次のようにするだけです。 {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>
1
Thiru Maran

私も同じ問題をフェッチし、config/Tomcat-users.xmlにロールユーザーとpassowrdを最初に追加し、webapps/manager/META-INF/context.xmlにパブリックIPを許可しました同じマシン。そこにあなたのIPを追加します

0
Palash

変更する必要があります:

docBase="${catalina.home}/webapps/manager"

に:

docBase="${catalina.base}/webapps/manager"

これは、アップストリームから配布されているTomcatではなく、Ubuntuに付属しているTomcatを使用しているためです。

0
PetrS

これは私のために働くので、これはあなた方全員に役立つかもしれないと思います。

ここでは、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"/>
0
Akash Rai

'Apache-Tomcat-8.5.5\webapps\manager\META-INF\context.xlmファイルを更新します。 Valueタグのコメントを外します。サーバーを再起動します

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
0
Bheem Singh