Auf derselben VM läuft ein weiterer Dienst mit einem anderen Webserver (Python, Uvicorn) in Container (2), der an Port 8081 weitergeleitet wird und unter www.example.com/another_site/ zugänglich ist. Dieses Setup funktioniert einwandfrei.
Für den Webserver in Container (1) funktioniert es jedoch nicht. Ich erhalte die Fehlermeldung 403 Forbidden.
Bilddetails für den Webdienst (Testzweck)
Das Bild zum Testen ist sehr einfach:
- Es dient einer einzelnen HTML-Datei, die eine image.png lädt (die auch im Podman-Bild gespeichert ist).
- Ich habe die Standard-Webserverkonfiguration verwendet.
- Kein PHP, JavaScript oder andere komplexe Funktionen werden verwendet.
- Das Image für Container (1) funktioniert perfekt auf meinem PC (anderes Betriebssystem (Ubuntu), anders Podman Version 4.9.3).
- Das gleiche Image für Container (1) läuft auf einer zweiten VM (unserer Entwicklungs-VM) mit dem gleichen Setup wie die erste VM, ebenfalls ohne Probleme. Beide VMs verwenden das gleiche Betriebssystem (Oracle Linux Server 9.6) und die gleiche Version, aber die erste VM hat keine Internetverbindung, was das Problem nicht beeinflusst hat (ich habe es getestet).
- Ich habe versucht, das Image aus einem einfachen Debian-Slim-Image zu erstellen, indem ich Apache2 installierte und auch direkt mit einem httpd-Image begann.
- Ich habe es mit Nginx statt getestet Apache2/httpd im Container (1), aber ich stoße auf das gleiche 403 Forbidden-Problem. Dieses Setup funktioniert auf meinem PC und der zweiten VM einwandfrei.
- Ich habe auch ein Image mit Pythons integriertem http.server mit denselben Dateien getestet, und das funktioniert einwandfrei und ohne Probleme. Dies deutet darauf hin, dass der Reverse-Proxy auf dem Host/der VM korrekt konfiguriert ist. Dieses Image funktioniert auch auf meinem Computer und der zweiten VM.
- Ich kann mich beim Container anmelden (1), sodass der Container anscheinend korrekt gestartet wurde.
- Wenn ich versuche, die Site von außerhalb des Containers anzufordern (), erhalte ich den Fehler 403 Forbidden.
Code: Select all
curl -I http://localhost:8082 - Wenn ich versuche, die Site aus dem Container heraus anzufordern (), erhalte ich den gleichen Fehler 403 Forbidden.
Code: Select all
curl -I http://localhost:80
Code: Select all
/var/log/apache2/error.logCode: Select all
[Thu Oct 09 09:34:25.451475 2025] [mpm_event:notice] [pid 17:tid 17] AH00489: Apache/2.4.65 (Debian) configured -- resuming normal operations
[Thu Oct 09 09:34:25.451785 2025] [core:notice] [pid 17:tid 17] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
libgcc_s.so.1 must be installed for pthread_exit to work
libgcc_s.so.1 must be installed for pthread_exit to work
[Thu Oct 09 09:34:26.453339 2025] [core:notice] [pid 17:tid 17] AH00051: child pid 18 exit signal Abort (6), possible coredump in /etc/apache2
[Thu Oct 09 09:34:26.454774 2025] [core:notice] [pid 17:tid 17] AH00051: child pid 19 exit signal Abort (6), possible coredump in /etc/apache2
libgcc_s.so.1 must be installed for pthread_exit to work
libgcc_s.so.1 must be installed for pthread_exit to work
... (continued many times)
Code: Select all
apt-get install gccEin weiterer Fehler in den Protokollen:
Manchmal sehe ich auch diesen Fehler in den Protokollen:
Code: Select all
(13)Permission denied: [client 134.130.30.100:33628] AH00035: access to /image.png denied (filesystem path '/usr') because search permissions are missing on a component of the path
Beachten Sie jedoch, dass das gleiche Image auf meinem Notebook und der zweiten VM funktioniert, ohne dass Berechtigungen geändert werden müssen.
Andere mögliche Ursachen:
- Serverkonfiguration: Auch wenn ich die Standardkonfiguration verwendet habe, Ich habe alle Konfigurationsdateien überprüft und konnte keine Probleme feststellen.
- AppArmor, SELinux: Keines davon ist in meinem Container vorhanden und beide sind auf den Hosts/VMs deaktiviert.
- Firewall: Die Firewall auf dem Host wurde deaktiviert und das Problem besteht weiterhin.
All dies deutet darauf hin, dass das Problem während des Initialisierungsprozesses des Containers auftritt, jedoch nur auf einer VM. Es scheint Container mit Apache2/httpd- oder Nginx-Webservern zu betreffen, nicht jedoch den Python-Webserver. Das ist wirklich frustrierend, denn das ist genau das, was Container lösen sollen – die konsistente Ausführung in verschiedenen Umgebungen.
Ist jemand auf dieses Problem gestoßen oder hat er eine Idee, was ich als Nächstes versuchen sollte? Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.
Mobile version