Podman-Container-Problem – Apache2/Nginx-Webserver 403 verbotenLinux

Linux verstehen
Anonymous
 Podman-Container-Problem – Apache2/Nginx-Webserver 403 verboten

Post by Anonymous »

Ich bin auf ein sehr merkwürdiges Problem mit einem Podman-Container gestoßen und versuche seit Tagen, es zu lösen. Ich möchte Container (1) mit einem Webserver (Apache2/httpd) auf einer VM ausführen. Ich leite Port 80 dieses Webservers an Port 8082 auf dem Host/der VM weiter, und auf dem Host fungiert ein weiterer Webserver als Reverse-Proxy. Die Website innerhalb des Containers sollte unter www.example.com/a_site/ zugänglich sein.
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.
Was ich versucht habe:
  • 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.
So habe ich das Problem getestet:
  • 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 (

    Code: Select all

    curl -I http://localhost:8082
    ), erhalte ich den Fehler 403 Forbidden.
  • Wenn ich versuche, die Site aus dem Container heraus anzufordern (

    Code: Select all

    curl -I http://localhost:80
    ), erhalte ich den gleichen Fehler 403 Forbidden.
Das lässt mich vermuten, dass der Webserver im Container nicht ordnungsgemäß läuft. Wenn ich die Apache-Fehlerprotokolle überprüfe (

Code: Select all

/var/log/apache2/error.log
), sehe ich Folgendes:

Code: 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)
Ich habe versucht, diesen Fehler durch die Installation von GCC zu beheben (

Code: Select all

apt-get install gcc
) innerhalb des Bildes, aber es hat nichts geändert. Möglicherweise ist GCC nicht das richtige Paket, um die fehlende Bibliothek zu installieren.
Ein 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
Dieser Fehler und eine Suche nach 403 Forbidden deuten darauf hin, dass Datei- oder Ordnerberechtigungen fehlen. Ich habe getestet, wie ich die Berechtigungen und den Besitz der Dateien im Container (1) sowohl für die Apache2- als auch für die Nginx-Webserver ändere. Die Dateien (z. B. index.html) werden auf 644 und der enthaltende Ordner auf 755 gesetzt. Das hat nicht geholfen. Ich habe auch versucht, allen übergeordneten Ordnern 755-Berechtigungen zu erteilen.
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.
Schlussfolgerung:
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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post