Proxy reverso do Apache com alias, permissão negada

1

Estou tentando usar o apache 2.2 para fazer o proxy reverso do servidor tomcat e servir os logs do tomcat no caminho / tomcat-logs. Isso está dentro de uma imagem do Docker baseada no Ubuntu 12.04, mas isso não deve ser um problema.

000-default.conf:

<VirtualHost *:80>
  Alias /tomcat-logs /var/log/tomcat7
  ProxyPreserveHost on
  ProxyPass /tomcat-logs !
  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/
</VirtualHost>

link

<Directory />
  Order deny,allow
  Deny from all
</Directory>

<Directory /var/log/tomcat7>
  Order allow,deny
  Allow from all
  AllowOverride None
  Options +Indexes
</Directory>

O proxy reverso funciona como esperado, mas quando eu tento acessar o tomcat-logs / catalina.out eu recebo um 403 Forbidden. O erro do log do apache é:

(13)Permission denied: access to /tomcat-logs/catalina.out denied

Eu verifiquei as permissões de arquivo dos arquivos de log e os diretórios que levam ao local do log e eles são todos 644 ou 755.

O que eu acho estranho é que a mensagem de acesso negado diz "/tomcat-logs/catalina.out" em vez de "/var/log/tomcat7/catalina.out".

Alguém tem alguma ideia?

UPDATE

Se eu for para http://localhost/tomcat-logs/ no meu navegador, recebo o seguinte erro no meu log:

(13)Permission denied: access to /tomcat-logs/index.html denied
... Others similar to index.html

Portanto, a diretiva Options +Indexes não é usada. Portanto, acho que o Directory /var/log/tomcat7 é ignorado. O que poderia causar isso?

UPDATE

Se eu derrubar o proxy reverso e usar o DocumentRoot em vez do Alias, recebo o mesmo erro.

<VirtualHost *:80>
  DocumentRoot /var/log/tomcat7
</VirtualHost>

E o erro é:

(13)Permission denied: access to /catalina.out denied

Com o log de depuração, o log completo é:

[Fri Jan 09 14:26:40 2015] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations
[Fri Jan 09 14:26:40 2015] [info] Server built: Jul 22 2014 14:35:32
[Fri Jan 09 14:26:40 2015] [debug] worker.c(1757): AcceptMutex: sysvsem (default: sysvsem)
[Fri Jan 09 14:26:40 2015] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 428 for worker proxy:reverse
[Fri Jan 09 14:26:40 2015] [debug] proxy_util.c(1914): proxy: initialized worker 0 in child 428 for (*) min=0 max=25 smax=25
[Fri Jan 09 14:26:40 2015] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 429 for worker proxy:reverse
[Fri Jan 09 14:26:40 2015] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Fri Jan 09 14:26:40 2015] [debug] proxy_util.c(1914): proxy: initialized worker 0 in child 429 for (*) min=0 max=25 smax=25
[Fri Jan 09 14:27:07 2015] [error] [client 172.17.42.1] (13)Permission denied: access to /catalina.out denied
[Fri Jan 09 14:27:07 2015] [debug] mod_deflate.c(700): [client 172.17.42.1] Zlib: Compressed 289 to 219 : URL /catalina.out

Executando sudo aa-status no host:

apparmor module is loaded.
18 profiles are loaded.
18 profiles are in enforce mode.
  /sbin/dhclient
  /usr/lib/NetworkManager/nm-dhcp-client.action
  /usr/lib/connman/scripts/dhclient-script
  /usr/lib/cups/backend/cups-pdf
  /usr/lib/lightdm/lightdm-guest-session
  /usr/lib/lightdm/lightdm-guest-session//chromium
  /usr/lib/telepathy/mission-control-5
  /usr/lib/telepathy/telepathy-*
  /usr/lib/telepathy/telepathy-*//pxgsettings
  /usr/lib/telepathy/telepathy-*//sanitized_helper
  /usr/lib/telepathy/telepathy-ofono
  /usr/sbin/cups-browsed
  /usr/sbin/cupsd
  /usr/sbin/cupsd//third_party
  /usr/sbin/mysqld-akonadi
  /usr/sbin/mysqld-akonadi///usr/sbin/mysqld
  /usr/sbin/tcpdump
  docker-default
0 profiles are in complain mode.
10 processes have profiles defined.
10 processes are in enforce mode.
  /sbin/dhclient (9937) 
  /usr/lib/telepathy/mission-control-5 (3463) 
  /usr/sbin/cups-browsed (1405) 
  /usr/sbin/cupsd (3849) 
  /usr/sbin/mysqld-akonadi///usr/sbin/mysqld (3481) 
  docker-default (14568) 
  docker-default (15403) 
  docker-default (15406) 
  docker-default (15408) 
  docker-default (15409) 
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Depois de executar aa-complain /etc/apparmor.d/docker , ainda recebo o erro 403.

    
por gerrit 09.01.2015 / 11:43

1 resposta

1

Encontrei uma solução alternativa adicionando o usuário www-data ao grupo adm com usermod -a -G adm www-data . Alguém pode esclarecer por que isso funciona, mas dar permissões de leitura e execução a outros para /var/log/tomcat7 não? Também alterar o grupo deste diretório para www-data não funcionou.

    
por 11.01.2015 / 02:32