Isso tem me deixado louco por alguns dias agora. Ou eu estou fazendo algo completamente errado, muito bobo, ou uma combinação disso.
Estou no Ubuntu 11.10. Eu corri os seguintes comandos:
sudo apt-get install nginx
sudo apt-get install tomcat7 tomcat7-admin
O seguinte é meu arquivo 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>
Eu configurei a seguinte configuração do nginx:
server {
listen 80;
server_name tomcat.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Authorization "Basic YWRtaW46c2VjcmV0";
}
}
Em que YWRtaW46c2VjcmV0
é admin:secret
codificado em Base64
.
Acessar http://tomcat.example.com
funciona bem; no entanto, sempre que tento acessar http://tomcat.example.com/manager/html
, recebo uma página 403 do Tomcat. Eu tentei reiniciar o nginx e o tomcat sem sucesso.
O seguinte aparece no meu log de acesso Nginx sempre que tento entrar no gerenciador do Tomcat:
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"
O seguinte aparece no meu log de acesso ao Tomcat sempre que eu tento entrar no gerenciador do Tomcat:
127.0.0.1 - admin [29/Dec/2011:06:20:22 -0500] "GET /manager/html HTTP/1.0" 403 1108
Eu pretendo proteger ainda mais isso configurando o SSL no Nginx junto com a autenticação básica HTTP, mas preciso que o básico funcione primeiro. Alguém sabe o que está acontecendo aqui?