Это сводит меня с ума уже несколько дней. Либо я делаю что-то совершенно неправильно, действительно глупо, либо их комбинация.
Я использую Ubuntu 11.10. Я выполнил следующие команды:
sudo apt-get install nginx
sudo apt-get install tomcat7 tomcat7-admin
Следующее - мой tomcat-users.xml
файл:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="admin" />
<role rolename="manager" />
<user username="admin" password="secret" roles="admin,manager" />
</tomcat-users>
Я установил следующую конфигурацию nginx:
server {
listen 80;
server_name tomcat.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Authorization "Basic YWRtaW46c2VjcmV0";
}
}
куда YWRtaW46c2VjcmV0
является admin:secret
закодировано в Base64
.
Доступ http://tomcat.example.com
работает отлично; однако всякий раз, когда я пытаюсь получить доступ http://tomcat.example.com/manager/html
Я получаю страницу 403 от Tomcat. Я попытался перезапустить nginx и tomcat безрезультатно.
Когда я пытаюсь войти в диспетчер Tomcat, в моем журнале доступа Nginx появляется следующее:
xxx.xxx.xxx.xxx - admin [29/Dec/2011:06:20:22 -0500] "GET /manager/html HTTP/1.1" 403 431 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7"
Когда я пытаюсь войти в диспетчер Tomcat, в моем журнале доступа Tomcat появляется следующее:
127.0.0.1 - admin [29/Dec/2011:06:20:22 -0500] "GET /manager/html HTTP/1.0" 403 1108
Я планирую еще больше обезопасить это, настроив SSL на Nginx вместе с базовой аутентификацией HTTP, но сначала мне нужно получить основы работы. Кто-нибудь знает, что здесь происходит?
Полностью противоречит этот скриншот из той же установки Tomcat, роль простого manager
не хватит. Мне нужна была роль manager-gui
. Я выставлю неисправное "Работает!" страницу как ошибку, так как это был чрезвычайно разочаровывающий процесс.
Есть также другие роли менеджера, для которых по умолчанию установлено значение «Работает!» страница должна содержать подробности, например manager-script
.