Приложение Tomcat Manager и ошибка HTTP 404

Я пытаюсь настроить приложение администратора для экземпляра Tomcat 6.0.24. Ни один из поисков, которые я провел, ничего не дал. Я использую эту конфигурацию для Apache 2.2.14:

Alias /manager /usr/share/tomcat6-admin/manager

<Directory "/usr/share/tomcat6-admin/manager">
        Options Indexes FollowSymLinks
        AllowOverride None
        allow from all
</Directory>

ProxyPass /manager ajp://localhost:8009/manager

В tomcat-users.xml у меня есть это:

<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="admin"/>
  <role rolename="operator"/>
  <role rolename="manager"/>
  <user username="admin" password="nopasswordforyou" roles="admin,tomcat,manager"/>
  <user username="operator" password="nevermind" roles="operator"/>
</tomcat-users>

Я нашел документы, которые предположили, что мне нужно manager-gui роль установлена ​​и определена, но, похоже, это Tomcat 7, а не Tomcat 6.

Файл manager.xml по умолчанию предоставляется в Ubuntu Lucid Lynx 10.04:

<Context path="/manager" 
        docBase="/usr/share/tomcat6-admin/manager" 
        antiResourceLocking="false" privileged="true" />

Если я получу доступ /manager из веб-браузера я получаю сообщение об ошибке 404 от Tomcat: "запрошенный ресурс недоступен". Если я получу доступ /manager/images Я получаю то же самое. Если я получу доступ /manager/401.jsp Я получаю актуальную страницу.

Кроме того, server.xml имеет не только обычную область (UserDatabaseRealm) но также и для аутентификации MySQL (JDBCRealm). Расследование этого показало, что роль manager там не было для пользователя admin; Я исправил это, выполнив:

INSERT USER_ROLE_DB SET USER_NAME='admin', ROLE_NAME='manager';

Я перезапустил Tomcat, хотя подозреваю, что это было излишним. Без изменений. Я не вижу ошибок в файлах catalina.out или localhost.*.

Что мне не хватает? Каково взаимодействие между различными сферами? Как мне заставить работать приложение менеджера?

7 ответов

У меня была такая же ситуация, когда менеджер tomcat не запускался. Я нашел это исключение в моем logs/manager.DDD-MM-YY.log:

org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter CSRF
java.lang.ClassNotFoundException: org.apache.catalina.filters.CsrfPreventionFilter
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        ...

Это исключение было вызвано тем, что я использовал версию tomcat, в которой не было фильтра предотвращения CSRF.

Tomcat 6.0.24 не имеет фильтра предотвращения CSRF. Первая версия, которая имеет это, является версией 6.0.30 (по крайней мере согласно журналу изменений).

В результате Tomcat Manager был несовместим с версией Tomcat, которую я использовал. Я нашел это описание этой проблемы.

Шаги, чтобы это исправить:

  1. Проверьте версию установленного tomcat, запустив "sh version.sh" из каталога tomcat/bin
  2. Скачать соответствующую версию Tomcat
  3. Стоп кот
  4. Удалите каталог webapps/manager и скопируйте приложение manager из дистрибутива, который вы загрузили.
  5. Начать кот

Теперь вы должны иметь доступ к диспетчеру Tomcat.

Доступ напрямую /manager/html вместо. Работал на меня.

404 означает, что у вас нет файла для доступа. Я установил tomcat 7 на Amazon EC2 и получил сообщение 404. По умолчанию не поставляется с менеджером пакета и документов.

sudo yum install tomcat6-webapps tomcat6-docs-webapp tomcat6-admin-webapps

0

Я допустил ошибку в своем ./META-INF/context.xml

удалить строку ниже, вместо того, чтобы комментировать

<Valve className="org.apache.catlina.valves.RemoteAddrValve"

разрешить="127.\d+.\d+|::1|0:0:0:0:0:0:0:1" />

Это отлично работает со мной

Вы следовали за гидом? Некоторые возможности:

  • У вас не установлено приложение - исправьте с помощью sudo apt-get install tomcat7-admin (при необходимости измените на свою версию Tomcat)
  • Возможно, конфигурация Apache неверна, учитывая, что вы, похоже, используете AJP. Я успешно использовал

    <Location /manager>

    ProxyPass ajp://localhost:8009/manager

    </Location>

    с соответствующей записью в /etc/tomcat7/server.xml:

    <Connector port="8009" enableLookups="false" URIEncoding="UTF-8" protocol="AJP/1.3" redirectPort="8443" proxyPort="443" scheme="https" secure="true" />

Убедитесь, что у вас нет процесса Tomcat в фоновом режиме

ps -eaf | grep -i tomcat

Переконфигурируем на некоторое время, прежде чем понять service tomcat8 stop не останавливал службу Tomcat, потому что служба была заморожена.

Убей потом перезапуск службы сработал.

Я попытался установить tomcat6-admin с помощью "sudo apt-get install tomcat6-admin" в ubuntu, мне сказали, что пакет уже обновлен. Я решил скопировать / usr / share / tomcat6-admin / manager в каталог веб-приложений tomcat6. Это работает сейчас.

Я не уверен, почему при установке не будет скопировано приложение менеджера в каталог webapps.

Другие вопросы по тегам