Не удается получить доступ к приложению Tomcat 8 Manager
я только что настроил Tomcat 8 на Ubuntu 14.04 VM, и я не могу получить доступ к приложению менеджера в http://[hostname]:8080/manager/html
из моего браузера. Я получаю ошибку "403 Access Denied", как только я нажимаю на нее. Я запускаю Tomcat как службу, определенную в файле конфигурации в /etc/init.d/tomcat8-dev
. Сообщение об ошибке указывает, что Tomcat изначально настроен на доступ только с localhost, но поскольку это размещенная виртуальная машина, я не могу запустить на ней браузер.
я настроил пользователя в 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 здесь, я также пробовал добавлять <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"
toserver.xml
внутри<Connector />
tag - используя
initctl
вместо того, чтобы настраивать службу на основе инструкций здесь, который почему-то не загружает страницу по умолчанию на моем сервере - попытка различных браузеров и отключение моего блокировщика всплывающих окон
ничего, что я пробовал, не работает. Пожалуйста, дайте мне знать, если вы хотите получить более подробную информацию о моей ситуации. Есть предложения?
Edit: проблема была в том, что я редактировал неправильно . Правильный файл находится в tomcat/webapps/manager/META-INF
. Я неправильно вносил изменения в tomcat/conf/context.xml
.
3 ответов
AFAIK Tomcat блокирует доступ к приложению Manager (manager / html) для всех хостов, кроме localhost в конфигурации по умолчанию.
чтобы иметь доступ к GUI менеджера с http: / / [имя хоста]: 8080 / manager / html, настройте это на сервере файлов конфигурации.xml и контекст.xml приложения менеджера:
Шаг 1: в [tomcat-install-dir]/conf / server.xml изменить разъем элемент и добавьте свой 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, отредактируйте клапан элемент и добавьте свой 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
привилегия: установите значение true, чтобы разрешить этому контексту использовать контейнер сервлеты, как сервлет менеджера.
antiResourceLocking: если true, Tomcat предотвратит блокировку файлов. Это существенно повлияет на время запуска приложений, но позволяет полное webapp горячее развертывание и undeploy на платформах или конфигурации, в которых может происходить блокировка файлов
обратите внимание, что я не добавляю еще один элемент Valve, как вы упомянули в списке вещей, которые вы пробовали, но вместо этого я редактирую существующий и просто добавляю свой IP (192.168.0.9).
Шаг 3: перезапустите Tomcat, и вы сможете получить доступ к GUI менеджера с localhost / 127.0.0.1, а также с вашим именем хоста / IP.
в сторону: относительно ваших пользователей tomcat.xml,менеджер Tomcat HOW-TO гласит:
рекомендуется никогда не предоставлять manager-script или manager-jmx роли для пользователей с ролью manager-gui.
таким образом, вы можете представить двух пользователей в вашем tomcat-пользователи.xml, т. е.:
<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"/>
вы должны изменить:
docBase="${catalina.home}/webapps/manager"
в:
docBase="${catalina.base}/webapps/manager"
это потому, что вы не используете Tomcat как распределенный вверх по течению, но тот, который поставляется с Ubuntu.
Я думаю, что это может помочь для всех вас, потому что его работа для меня.
здесь я использую 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-пользователь.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"/>