Arama Yap Mesaj Senden
Rückruf anfordern
+90
X
X

Wählen Sie Ihre Währung

Türkische Lira $ US Dollar Euro
X
X

Wählen Sie Ihre Währung

Türkische Lira $ US Dollar Euro

Kontaktieren Sie uns

Standort Halkali Merkez Viertel Fatih Str. Ozgur Apt. No. 46, Kucukcekmece, Istanbul, 34303, TR
Technischer Leitfaden für NGINX

NGINX Verbindungsgrenze: worker_connections und Open-File-Einstellungen

Wenn NGINX bei hohem Traffic neue Verbindungen nicht akzeptieren kann und Sie "worker_connections are not enough" oder "too many open files" sehen, sollte nur eine Zahl erhöht werden. Die Anzahl der Worker, die Datei-Descriptor-Grenze, Proxy-Verbindungen, Keepalive, WebSocket und Bot-Verkehr sollten gemeinsam gemessen werden.

worker_connectionsToo Many Open FilesLimitNOFILEKeepaliveHigh Traffic
root@server:~SSH
2026/07/17 04:27:03 [alert] 2511#2511: 1024 worker_connections are not enough
2026/07/17 04:27:04 [crit] 2511#2511: accept4() failed (24: Too many open files)
AnforderungsflussClient, NGINX und Backend-Verbindungsbrempunkt
KonfigurationValidierung der aktiven Server- und Location-Blöcke
Live-DiagnoseLog, Socket, Port- und Dienstkontrolle
Sichere AnwendungTest, kontrollierter Reload und Ergebnisvalidierung
01
Technische Beschreibung

Was bestimmt worker_connections und offene Dateilimit?

Der gleichzeitige Verbindungslimit für jeden NGINX-Worker wird durch worker_connections bestimmt. Reverse-Proxy-Verbindungen, Upstream-Sockets und einige offene Dateien verbrauchen auch Deskriptoren; die theoretische Kapazität kann den Betriebssystemlimit nicht überschreiten.

worker_processes sollte auf auto auf den meisten Systemen gesetzt werden, da es auf der CPU-Basis Arbeiter erstellt; obwohl es scheinen mag, als wäre die Gesamtkapazität der Clienten einfach worker_processes × worker_connections, in Proxy-Verwendung ist jedoch für jeden Client eine zusätzliche Upstream-Verbindung erforderlich.

worker_rlimit_nofile kann die offene Dateilimits der NGINX-Arbeiter erhöhen, aber es sollte mit systemd LimitNOFILE und den Prozess-Soft- und -Hartelimits konsistent sein.

Langzeit-Keepalive, WebSocket- oder SSE-Verbindungen können auch bei niedrigem Anforderungstraffik viele Verbindungen offen halten. stub_status, ss und /proc-Prozesslimits sollten gemeinsam überwacht werden.

Erhöhen Sie den Limit nicht allein, ohne zu untersuchen, ob der plötzliche Limitwarnung durch einen Bot/DDoS, langsamen Client, upstream-Verbindungsleak oder falsche Keepalive-Konfiguration verursacht wurde.

Wenn ein Proxy-Client im Kapazitätskonto verwendet wird, sollten sowohl Client- als auch Upstream-Verbindungen berücksichtigt werden; der tatsächliche Wert sollte mit stub_status und process fd Zahl gemessen werden.

02
Protokollmeldungen und ihre Bedeutung

Arbeiter, Dateideskriptor- und Verbindungsgrenzwertnachrichten

Suchen Sie nach dem Ausdruck, den Sie in der E-Mail, im Browser oder im SSH-Protokoll sehen. Jede Karte enthält eine Bedeutung, eine wahrscheinliche Ursache und eine sichere erste Maßnahme.

8 Registrierung
01kritik

worker_connections are not enough

Bedeutung: Ein Worker hat die definierte Grenze für neue Verbindungen erreicht.

Mögliche Ursache: Niedrige Grenze, lange Links oder Verkehrsschwemme

Messen Sie aktive Verbindungen, Worker-Anzahl und Grenzwerte zusammen.
02kritik

accept4() failed (24: Too many open files)

Bedeutung: Der Prozess kann keinen neuen Socket/Datei-Descriptor öffnen.

Mögliche Ursache: Der NOFILE-soft/hard- oder systemd-Limit ist zu niedrig.

Überprüfen Sie die NGINX-Master/Arbeiter-/proc-Beschränkungen und die FD-Zählung.
03kritik

socket() failed (24: Too many open files)

Bedeutung: Es konnte kein Upstream- oder Client-Socket erstellt werden.

Mögliche Ursache: Descriptor-Grenze oder -Leck.

Überwachen Sie lsof und /proc/PID/fd.
04Warnung

open socket left in connection

Bedeutung: Ein Socket blieb während des Reloads offen.

Mögliche Ursache: Langsame Verbindung oder Modulverhalten.

Überprüfen Sie WebSocket/Stream-Verbindungen und Worker-Beendigungszeit.
05Warnung

connect() failed (99: Cannot assign requested address)

Bedeutung: Der lokale Ephemeral-Port oder Netzwerkressource könnte erschöpft sein.

Mögliche Ursache: Zu viele upstream-Verbindungen oder TIME_WAIT.

Überprüfen Sie ss -s und den Wert von ip_local_port_range.
06Warnung

upstream timed out under load

Bedeutung: Der Verbindungslimit ist nicht direkt gefüllt, aber die Worker/Backend-Warteschlange wächst.

Mögliche Ursache: Upstream-Kapazität ist niedriger als bei NGINX.

NGINX mit Backend-Konkurrenzlimits synchronisieren.
07bilgi

1024 worker_connections

Bedeutung: Die gängige Standard-/Beispielswert kann für ein starkes System möglicherweise nicht ausreichen.

Mögliche Ursache: Keine Kapazitätsplanung für die Konfiguration.

Berechnen Sie auf der Grundlage des echten Traffic und fd-Grenzwerte.
08bilgi

EMFILE: too many open files

Bedeutung: Die Anwendung oder der NGINX-Prozess hat die Grenze für Dateideskriptoren erreicht.

Mögliche Ursache: Limit oder Datei/Socket-Leak.

Bestimmen Sie, welcher Prozess' fd-Zähler zunimmt.

Es wurden keine Datensätze gefunden, die diesem Ausdruck entsprechen.

03
Sichere erste Bewertung

SSH-Diagnosebefehle und auf welche Ausgabe ist zu achten?

Befehle sind für den Root-Zugriff vorgesehen. Sammeln Sie zunächst nur den Status und die Protokolle. Ändern Sie die dauerhafte Einstellung nicht, ohne den Grund dafür zu erkennen.

Arbeiter und Verbindungseinstellungen
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile|keepalive_timeout|keepalive_requests'

Zeigt aktive Kapazitäts- und Verbindungslaufzeit-Einstellungen an.

Process limitleri
MASTER=$(cat /run/nginx.pid); cat /proc/$MASTER/limits | grep -i 'open files'
for p in $(pgrep -f 'nginx: worker'); do echo PID=$p FD=$(ls /proc/$p/fd | wc -l); cat /proc/$p/limits | grep -i 'open files'; done

Master und Worker zeigen die tatsächlichen NOFILE-Grenzwerte/fd-Nutzung an.

Verbindungszusammenfassung
ss -s
ss -ant state established | wc -l
ss -ant state time-wait | wc -l

Misst aktive, etablierte und TIME_WAIT-Verbindungen.

Stub status
curl -s http://127.0.0.1/nginx_status

Zeigt die Werte Active, akzeptiert, bearbeitet, Anfragen, Lesen/Schreiben/Warten an.

systemd NOFILE
systemctl show nginx -p LimitNOFILE
systemctl cat nginx

Zeigt die offene Dateilimit in den Serviceeinheit- und Überschreibungsdateien an.

Reload und Limit-Validierung
nginx -t && systemctl reload nginx
systemctl show nginx -p LimitNOFILE

Wenden Sie die Konfigurationsänderung an und überprüfen Sie die Dienstgrenze.

04
Durch Hosting-Umgebung

Ubuntu/Debian-, AlmaLinux/CloudLinux- und Plesk-Steuerelemente

Obwohl die Grundursache des NGINX-Fehlers dieselbe ist, variieren Paketpfade, Dienstnamen, Sicherheitsebenen und die Verwaltung virtueller Hosts je nach verwendeter Linux-Distribution oder Plesk-Infrastruktur.

Ubuntu / Debian

NGINX Worker Connections und Open Files für systemd, Paketpfad und journald-Prüfunglen.

  • Zuerst die aktive NGINX-Konfiguration und den Status des Dienstes überprüfen.
  • Vergleichen Sie das Domain-Fehler-Log mit dem systemd-Log im gleichen Zeitraum.
  • Führen Sie vor der Änderung nginx -t und anschließend ein unterbrechungsfreies Neuladen durch.
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile' systemctl show nginx -p LimitNOFILE ss -s

AlmaLinux / CloudLinux

NGINX Worker Connections und Open Files für SELinux, PHP-FPM-Pool und RHEL-basierte Dienstekontrollen.

  • Überprüfen Sie den aktiven Status von NGINX und den damit verbundenen Backend-Diensten.
  • Überprüfen Sie SELinux-ACV-Einträge und Sicherheitskontexte.
  • Starten Sie den Service nicht ohne die Konfigurationsprüfung durchzuführen.
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile' systemctl show nginx -p LimitNOFILE ss -s

Plesk Obsidian

NGINX virtuelle Hostdateien, die von Plesk generiert werden: Prüfungle von nginx-Arbeitsscharen und offenen Dateien.

  • Überprüfen Sie die zusätzlichen Direktiven im Abschnitt Domains > Apache- und nginx-Einstellungen.
  • Manuell erstellte und von Plesk generierte Dateien voneinander trennen.
  • Wenn nötig, erstellen Sie die Web-Konfiguration für die relevante Domain nur neu.
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile' systemctl show nginx -p LimitNOFILE plesk repair web -n
05
Sichere Lösungsreihenfolge

NGINX worker_connections und open files Lösungsfolge

Zuerst messen Sie die tatsächliche Verbindung/FD-Nutzung und die Verkehrstypen; dann passen Sie die NGINX-, systemd- und Betriebssystemgrenzwerte an, um sie kompatibel zu machen.

1

Zeit und Verkehrprofil des Fehlers aufzeichnen.

Bestimmen Sie, ob es sich um Bot-Traffic, normales Wachstum oder WebSocket/Keepalive handelt

date; uptime; ss -s
2

Aktive Worker-Einstellungen extrahieren.

Worker-Zähler, Verbindungsbeschränkung und rlimit-Werte speichern.

nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile'
3

Messung echter Prozess NOFILE und fd-Verwendung.

Vergleichen Sie den Konfigurationswert mit /proc-Grenzwerten und offener Deskriptoranzahl.

for p in $(pgrep -f 'nginx: worker'); do echo -n "$p "; ls /proc/$p/fd | wc -l; done
4

Analysieren Sie Verbindungstypen

Trennen Sie etablierte, wartende, TIME_WAIT-, WebSocket- und Upstream-Verbindungen.

ss -ant | awk 'NR>1 {s[$1]++} END {for(k in s) print k,s[k]}'
5

Kompatible Grenzwerte und Verkehrssteuerung implementieren.

worker_connections, worker_rlimit_nofile und systemd LimitNOFILE sollten zusammen geplant werden.

systemctl show nginx -p LimitNOFILE
6

Überwachen und überprüfen Sie unter Last

Nach dem Reload, die fd-Zahl, stub_status und error_log-Warnungen verfolgen.

nginx -t && systemctl reload nginx watch -n2 'ss -s; curl -s http://127.0.0.1/nginx_status'
06
Unterscheidung nach Symptom

Spezielle Szenarien und Entscheidungsbäume

Plötzlicher Bot/DDoS-Traffic

Wenn die Obergrenze erhöht wurde, ist eine IP-/URI-Verteilung und ein Rate-Limiting-Plan erforderlich.

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
WebSocket-Verbindungen

Langlaufende Verbindungen verbrauchen Arbeitskapazität.

ss -antp | grep nginx | wc -l
Uzun keepalive

Warten Verbindungen und der keepalive_timeout-Wert werden untersucht.

curl -s http://127.0.0.1/nginx_status; nginx -T | grep keepalive_timeout
Reverse proxy Last

Für jeden Client zusätzliche Upstream-Sockets berücksichtigen.

ss -antp | grep nginx | head
Log/Datei-Descriptor-Leck

Wenn die Anzahl der Dateideskriptoren eines Workers ständig ansteigt, werden offene Ziele untersucht.

lsof -p $(pgrep -f 'nginx: worker' | head -1) | head -n 50
Plesk Multi-Domain-Server

Globaler nginx.conf, Web-Server-Vorlage und Domain-Traffic werden gemeinsam bewertet.

nginx -T | grep worker_connections; ss -s

Auf keinen Fall

  • Erhöhen Sie worker_connections ohne systemd/NOFILE-Grenzwert zu überprüfen nicht.
  • Gegen DDoS- oder Bot-Traffic nur durch Kapazitätsaufstockung vorzugehen.
  • Zu hohe Keepalive- und unbegrenzte WebSocket-Verbindungen, lassen Sie es nicht ohne Messung zurück.
  • Denken Sie nicht daran vorbei, dass ein Datei-Descriptor-Leck möglich ist.
  • Stellen Sie nicht fest, dass eine Ulimit-Änderung nur im Shell-Profil und auf dem systemd-Dienst angewendet wird.

Überprüfung nach der Lösung

  • Der offene Dateilimit des Worker-Prozesses entspricht der geplanten Werte.
  • Die Anzahl der aktiven Dateideskriptoren liegt unter dem sicheren Limit.
  • Das Error-Log produziert keine neuen worker_connections/too many open files-Einträge.
  • stub_status akzeptiert und bearbeitete Werte zwischen gibt es keinen Verlust.
  • Bot-Ratenbegrenzung und Aufwärtskapazität sind mit normaler Verkehrslast kompatibel.
07
Offizielle technische Ressourcen

Offizielle Dokumentation von NGINX und zugehörigen Komponenten

08
Interner SEO-Inhaltssatz

Verwandte NGINX-Fehlerlösungen

09
Häufig gestellte Fragen

NGINX Worker Connections und Open Files Kuriositäten über

Was bestimmt worker_connections?

Legt die Obergrenze für die Anzahl der Verbindungen fest, die jeder Worker-Prozess gleichzeitig öffnen kann; Proxy-Verbindungen von oben sind auch in dieser Zahl enthalten

Wie wird die Gesamtkapazität der Verbindungen berechnet?

Worker-Processes und worker-Connections werden ungefährlich berüksichtigt, aber der Datei-Descriptor-Limit, Proxy-Connections und der Verkehrstyp verringern die tatsächliche Kapazität.

Wie löst man Too many open files?

Process NOFILE, systemd LimitNOFILE, worker_rlimit_nofile und der tatsächliche fd-Verwendung müssen miteinander kompatibel sein.

Reicht es aus, worker_connections zu erhöhen?

Nein. Es wird unwirksam sein, wenn die Betriebssystemgrenze niedrig ist; es kann das Problem verschlimmern, wenn es Bot-Traffic oder fd-Lecks gibt.

Was zeigt stub_status?

Aktive Verbindungen, Akzeptierungen, Verarbeitungen, Anfragen, die die Anzahl der lesenden/schreibenden/wartenden Verbindungen anzeigen.

Beeinflusst es den NGINX WebSocket-Limit?

Ja. Jeder lange geöffnete WebSocket-Client und meistens verbraucht die Upstream-Verbindung.

Wie wird systemd LimitNOFILE überprüft?

systemctl show nginx -p LimitNOFILE und überprüfen Sie gemeinsam die /proc/PID/limits-Datei des laufenden Arbeiters.

EKA SOFTWARE- UND INFORMATIONSSYSTEME

Lassen Sie uns den Fehler auf Ihrem Server dauerhaft beheben

Durch die gemeinsame Analyse von cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim und Sicherheitsebenen beheben wir die Grundursache des Fehlers, anstatt nur den Dienst zu entfernen.

Holen Sie sich Server-Support WhatsApp
Top