Der Lastenausgleich mit Docker Compose und Nginx verteilt den Datenverkehr nicht auf ReplikatePython

Python-Programme
Anonymous
 Der Lastenausgleich mit Docker Compose und Nginx verteilt den Datenverkehr nicht auf Replikate

Post by Anonymous »

Ich verwende Docker Compose, um einen einfachen HTTP-Server auf mehreren Replikaten auszuführen, um die Lastausgleichsfunktionen von Docker Compose und Nginx zu testen.
Die Datei docker-compose.yml enthält zwei Dienste:

Code: Select all

services:

server:
image: python:3.12-alpine3.19
command: python -m http.server 8000
deploy:
replicas: 2

nginx:
image: nginx:1.23.4-alpine
ports:
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
Die Konfigurationsdatei für Nginx namens nginx.conf im aktuellen Arbeitsverzeichnis hat die folgende Konfiguration:

Code: Select all

upstream server {
server server:8000;
}

server {
listen 80;

location / {
proxy_pass http://server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Nachdem ich die Docker-Compose-Dienste mit dem Befehl „docker compose up“ ausgeführt habe, kann ich den HTTP-Server folgendermaßen erfolgreich erreichen:

Code: Select all

curl -XGET http://localhost/
Wenn ich jedoch die Replik des Serverdienstes beende, der die ursprüngliche Anfrage verarbeitet hat, enden die nächsten Anfragen an den HTTP-Server mit einem Timeout-Fehler, ohne dass die verfügbare Replik erreicht wird. Der folgende Fehler wird von Nginx zurückgegeben:

Code: Select all

nginx-1  | 2025/09/30 12:50:16 [error] 35#35: *11 upstream timed out (110: Operation

timed out) while connecting to upstream, client: 172.18.0.1, server: , request: "GET /

HTTP/1.1", upstream: "http://172.18.0.2:8000/", host: "localhost"
Das Problem besteht darin, dass Nginx den Datenverkehr nicht an die verfügbare Replik des Server-Dienstes weitergeleitet hat, um die Anfragen zu verarbeiten.
Die Frage ist, was im aktuellen Szenario ein Problem sein könnte und wie man es richtig beheben kann?
Systemkonfiguration:
Betriebssystem: Ubuntu 24.04

Docker-Version: 28.0.2

Docker Compose-Version: 2.39.4

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post