Приложение 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, которую я использовал. Я нашел это описание этой проблемы.
Шаги, чтобы это исправить:
- Проверьте версию установленного tomcat, запустив "sh version.sh" из каталога tomcat/bin
- Скачать соответствующую версию Tomcat
- Стоп кот
- Удалите каталог webapps/manager и скопируйте приложение manager из дистрибутива, который вы загрузили.
- Начать кот
Теперь вы должны иметь доступ к диспетчеру Tomcat.
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.