Header title

Entwicklerhandbuch für Nginx-Upstream- & Load-Balancing-Konfigurationsgenerator

Erstellen Sie produktionsbereite Nginx-Upstream-Blöcke mit Round-Robin, least_conn, ip_hash, Keepalive und passiven Health-Checks.

Presets label
Input label
Server nodes label4 nodes
#1
Weight:
Max Fails:
Fail Timeout:
Max Conns (0=inf):
#2
Weight:
Max Fails:
Fail Timeout:
Max Conns (0=inf):
#3
Weight:
Max Fails:
Fail Timeout:
Max Conns (0=inf):
#4
Weight:
Max Fails:
Fail Timeout:
Max Conns (0=inf):
Performance tuning
Synchronizes node states across worker processes in multi-core environments.
Pool Conns:
Idle Timeout:
Reduces TCP handshake latency up to 60% by maintaining persistent HTTP/1.1 sockets.
Proxy settings
Server Port:
Server Name:
Location Path:
1# ========================================================
2# Upstream Pool: microservice_api_cluster
3# Load Balancing Method: LEAST_CONN
4# Generated by ToolsAA (100% Client-Side Private Generator)
5# ========================================================
6upstream microservice_api_cluster {
7 # Shared memory zone across all worker processes
8 zone microservice_api_zone 64k;
9
10 # Directs traffic to the server with fewest active connections
11 least_conn;
12
13 # Backend server cluster nodes
14 server 10.0.1.11:8080 weight=5 max_fails=3 max_conns=500;
15 server 10.0.1.12:8080 weight=5 max_fails=3 max_conns=500;
16 server 10.0.1.13:8080 weight=3 max_fails=3 max_conns=300;
17 server 10.0.1.99:8080 max_fails=3 backup;
18
19 # Upstream HTTP/1.1 persistent connection pool
20 keepalive 32;
21 keepalive_requests 1000;
22 keepalive_timeout 60s;
23}
Stats card1
3 Primaries/1 Backups
Active cluster load capacity: 75%
Stats card2
least conn
Worker sync enabled via 64k memory zone
Stats card3
32 idle sockets pool
Standard HTTP/1.1 connection reuse

Client-Side Processing

High-performance processing executed entirely in browser memory.

Zero Server Upload Privacy

All data payloads remain strictly local with zero external server communication.

Production Ready Export

Clean, optimized output formats ready for immediate deployment.

Technische Referenz & Architektur-Leitfaden

Entwicklerhandbuch für Nginx-Upstream- & Load-Balancing-Konfigurationsgenerator — Referenz-Leitfaden

Erstellen Sie produktionsbereite Nginx-Upstream-Blöcke mit Round-Robin, least_conn, ip_hash, Keepalive und passiven Health-Checks.

Wichtige Parameter & Steuerelemente

serverDirektive (string)

Definiert die Backend-Serveradresse (IP oder FQDN), den Port sowie Steuerungs-Flags wie weight, max_fails, fail_timeout, backup und down.

Standard: server 127.0.0.1:8080 weight=1 max_fails=1 fail_timeout=10s
algorithmDirektive (enum)

Bestimmt den Lastverteilungsalgorithmus: gewichtetes Round-Robin (Standard), least_conn (wenigste aktive Verbindungen), ip_hash (Client-IP-Persistenz) oder generischer Consistent Hash.

Standard: round-robin (implizit)
keepaliveinteger

Legt die maximale Anzahl ungenutzter Keepalive-Verbindungen zu Upstream-Servern fest, die im Cache jedes Worker-Prozesses vorgehalten werden.

Standard: 32
keepalive_requestsinteger

Bestimmt die maximale Anzahl von Anfragen, die über eine einzelne Keepalive-Verbindung verarbeitet werden können, bevor sie geschlossen wird.

Standard: 1000
keepalive_timeoutZeitangabe (string)

Definiert die Zeitspanne, in der eine inaktive Keepalive-Verbindung zum Upstream-Server geöffnet bleibt.

Standard: 60s
zonestring

Definiert den Namen und die Speichergröße des Shared-Memory-Bereichs zur Synchronisation von Upstream-Zuständen über alle Worker-Prozesse hinweg.

Standard: upstream_backend 64k

Profi-Tipps & Best Practices

HTTP/1.1 für Upstream-Keepalive zwingend erforderlich

Die Direktive 'keepalive 32;' allein aktiviert kein Verbindungspooling. Im zugehörigen location-Block müssen zwingend 'proxy_http_version 1.1;' gesetzt und der Verbindungs-Header mittels 'proxy_set_header Connection "";' geleert werden. Andernfalls verwendet Nginx standardmäßig HTTP/1.0 mit 'Connection: close', wodurch für jeden Request ein neuer TCP-Handshake entsteht.

Wartungsarbeiten ohne Downtime mit backup- und down-Flags

Markieren Sie Server im Wartungsmodus mit dem Parameter 'down;', um die Weiterleitung sofort zu unterbinden, ohne Hash-Ringe zu zerstören. Verwenden Sie 'backup;', um Standby-Knoten zu konfigurieren, die nur dann Traffic erhalten, wenn alle primären Backends infolge von fail_timeout ausfallen.

Consistent Hashing für zustandsbehaftete Cache-Cluster

Verwenden Sie bei Caching- oder Rendering-Systemen 'hash $request_uri consistent;' statt Round-Robin. Konsistentes Hashing stellt sicher, dass beim Hinzufügen oder Entfernen von Upstream-Knoten nur ein minimaler Teil der Cache-Schlüssel neu verteilt werden muss.

proxy_next_upstream für sicheres Failover konfigurieren

Verhindern Sie doppelte mutierende Datenbanktransaktionen mit 'proxy_next_upstream error timeout http_502 http_503;'. Fügen Sie 'non_idempotent' nur dann hinzu, wenn Ihre Anwendung bei POST- und PATCH-Anfragen strikt idempotent arbeitet.

Häufige Fallstricke & Fehlerbehebung

Upstream timed out (110: Connection timed out) oder 504 Gateway Timeout

Überprüfen Sie Backend-Firewall-Regeln und passen Sie proxy_connect_timeout, proxy_read_timeout sowie proxy_send_timeout an die Anwendungslogik an. Erhöhen Sie bei hoher Last die Worker-Connections und das Dateideskriptor-Limit (worker_rlimit_nofile).

ip_hash leitet den gesamten Datenverkehr nur an einen einzigen Server weiter

Wenn Nginx hinter Cloudflare, AWS ALB oder einem CDN betrieben wird, entsprechen alle Quell-IPs den Adressen des vorgeschalteten Proxys. Ersetzen Sie ip_hash durch 'hash $http_cf_connecting_ip consistent;' oder konfigurieren Sie das real_ip-Modul mit 'set_real_ip_from' und 'real_ip_header X-Forwarded-For;'.

502 Bad Gateway bei Konfigurations-Reloads oder Lastspitzen

Die Socket-Listen-Warteschlange des Backends läuft möglicherweise über. Erhöhen Sie den Kernel-Backlog (net.core.somaxconn) und konfigurieren Sie 'max_conns' auf der Server-Direktive, um eine Überlastung der Backend-Prozesse zu verhindern.

Häufig gestellte Fragen (FAQ)

Was ist der Unterschied zwischen Round Robin, least_conn und ip_hash?▼

Round Robin verteilt Anfragen reihum gemäß der definierten Gewichtung (weight). least_conn leitet Anfragen an den Server mit den aktuell wenigsten aktiven Verbindungen weiter, ideal für rechenintensive oder ungleichmäßig lange Anfragen. ip_hash berechnet aus der Client-IP einen Hash-Wert, um Clients für zustandsbehaftete Sitzungen zuverlässig demselben Server zuzuweisen.

Wie funktionieren passive Health-Checks in Open-Source-Nginx?▼

Nginx Open Source überwacht Backends passiv über 'max_fails' und 'fail_timeout'. Schlagen innerhalb von fail_timeout max_fails Verbindungsversuche fehl, wird der Server für die Dauer von fail_timeout als inaktiv markiert und vorübergehend nicht mehr angesteuert. Aktive Überprüfungen erfordern Nginx Plus oder Drittanbieter-Module.

Warum ist 'proxy_set_header Connection "";' für Keepalive erforderlich?▼

Im Standardverhalten setzt Nginx den Connection-Header auf 'close', da standardmäßig HTTP/1.0 für Upstreams genutzt wird. Durch das Umschalten auf HTTP/1.1 und das Löschen des Connection-Headers wird der Upstream angewiesen, den TCP-Socket für weitere Anfragen im Keepalive-Pool geöffnet zu halten.

Wie funktioniert dynamische DNS-Auflösung mit Nginx Upstream-Servern?▼

In Open-Source-Nginx werden Domänennamen in upstream-Blöcken nur einmalig beim Start aufgelöst. In dynamischen Umgebungen (Kubernetes, AWS ECS) sollten Sie die Ziel-URL in einer Variablen definieren (z. B. 'set $backend "http://api.internal:8080"; proxy_pass $backend;') und eine 'resolver'-Direktive mit TTL-Gültigkeit deklarieren.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →
Cron zu Kubernetes CronJob YAML-Konverter & Spezifikations-Generator Entwicklerhandbuchdeveloper

Konvertieren Sie Standard-Crontab-Ausdrücke in produktionsreife Kubernetes CronJob-Manifeste mit deklarativer restartPolicy, concurrencyPolicy, Ressourcenlimits und Zeitzonenunterstützung.

Werkzeug öffnen→
JSON zu GraphQL SDL Schema-Generator (Types, Queries & Inputs) Entwicklerhandbuchdeveloper

Generieren Sie GraphQL Schema Definition Language (SDL) Objekttypen, Eingabetypen (Input) und Abfrageschemata direkt aus JSON-Objekten.

Werkzeug öffnen→
Prometheus Alerting- & Recording-Rule-Generator (PromQL) Entwicklerhandbuchdeveloper

Erstellen und validieren Sie PromQL-Alerting-Regeln, Recording-Regeln, Schwellenwerte, Labels und Runbook-Annotationen visuell.

Werkzeug öffnen→
GraphQL SDL zu TypeScript Resolver-Typen Generator Entwicklerhandbuchdeveloper

Generieren Sie typsichere TypeScript-Resolver-Interfaces, Query-/Mutation-Argumente und Parent-Kontexttypen aus GraphQL SDL.

Werkzeug öffnen→
cURL zu C# Konverter (.NET HttpClient, RestSharp & Flurl) Entwickler-Leitfadendeveloper

Konvertieren Sie cURL-Befehlszeilenanforderungen in idiomatischen C#-Code mit .NET HttpClient, RestSharp oder Flurl.Http unter Berücksichtigung von asynchronen Best Practices und Connection Pooling.

Werkzeug öffnen→
cURL-zu-Java-Konverter Entwicklerhandbuch (Java 11+ HttpClient, OkHttp & Spring WebClient)developer

Konvertieren Sie cURL-Befehle in produktionsreife Java-HTTP-Anfragen mit nativem java.net.http.HttpClient, OkHttp3 oder Spring WebClient.

Werkzeug öffnen→