Ich versuche, mit Apache 2.2 den Proxy meines Tomcat-Servers umzukehren und die Tomcat-Protokolle unter dem Pfad / tomcat-logs bereitzustellen. Dies ist in einem Docker-Image enthalten, das auf Ubuntu 12.04 basiert. Dies sollte jedoch kein Problem darstellen.
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>
httpd.conf:
<Directory />
Order deny,allow
Deny from all
</Directory>
<Directory /var/log/tomcat7>
Order allow,deny
Allow from all
AllowOverride None
Options +Indexes
</Directory>
Der Reverse-Proxy funktioniert wie erwartet, aber wenn ich versuche, auf tomcat-logs / catalina.out zuzugreifen, erhalte ich eine 403 Forbidden. Der Fehler aus dem Apache-Protokoll ist:
(13)Permission denied: access to /tomcat-logs/catalina.out denied
Ich habe die Dateiberechtigungen der Protokolldateien und der Verzeichnisse überprüft, die zum Protokollspeicherort führen, und sie sind alle 644 oder 755.
Merkwürdig finde ich, dass in der Meldung "/tomcat-logs/catalina.out" anstelle von "/var/log/tomcat7/catalina.out" steht, dass der Zugriff verweigert wurde.
Hat jemand irgendwelche Ideen?
AKTUALISIEREN
Wenn ich http://localhost/tomcat-logs/
in meinem Webbrowser gehe, wird in meinem Protokoll die folgende Fehlermeldung angezeigt:
(13)Permission denied: access to /tomcat-logs/index.html denied
... Others similar to index.html
Die Options +Indexes
Direktive wird also nicht verwendet. Deshalb denke ich das Directory /var/log/tomcat7
wird ignoriert. Was könnte das verursachen?
AKTUALISIEREN
Wenn ich den Reverse-Proxy verwende und DocumentRoot anstelle von Alias verwende, wird derselbe Fehler angezeigt.
<VirtualHost *:80>
DocumentRoot /var/log/tomcat7
</VirtualHost>
Und der Fehler ist:
(13)Permission denied: access to /catalina.out denied
Bei der Debug-Protokollierung ist das vollständige Protokoll:
[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
Laufen sudo aa-status
auf dem Host gibt:
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.
Nachdem ich renne aa-complain /etc/apparmor.d/docker
bekomme ich immer noch den 403 Fehler.
sestatus
, um zu überprüfen.
/var/log/tomcat7
all auf 755 gesetzt? Ich habe gelesen, dass Sie das bereits überprüft haben, aber ich war nicht sicher, ob eines der Verzeichnisse 644 sein könnte. Außerdem wird Ubuntu mit AppArmor anstelle von SELinux ausgeliefert. Könnten Sie bitte überprüfen, ob es Richtlinien gibt, die Apache daran hindern könnten, diese Dateien zu lesen? Überprüfen Sie außerdem, ob der Pfad zu den Tomcat-Protokollen einen Symlink enthält. Wenn dies der Options +FollowSymLinks
Directory
Innere des zu kopierenVirtualHost
?