Ich habe eine sehr verkehrsarme Site auf nginx mit 4 Mitarbeitern und jeweils 1024 Verbindungen.
Alle paar Stunden sehe ich im Fehlerprotokoll "1024 worker_connections sind nicht genug", und meine Site wird langsamer / wird flockig. Ein Nginx-Neustart löst das Problem für die nächsten Stunden vollständig.
Offensichtlich passiert etwas Seltsames. Ich kann auf keinen Fall 4k gleichzeitige Benutzer meiner Anwendung bedienen.
Gibt es eine Möglichkeit, außer im Zugriffsprotokoll (das normal aussieht) genauer zu beobachten, was Nginx tut?
Gibt es eine berüchtigte Konfigurationskombination, die dazu führen kann, dass alte Verbindungen offen und nicht geschlossen gehalten werden?
Vielen Dank.
bearbeiten das sieht nicht richtig aus
# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271
Antworten:
Ohne Proxy Pass / Reverse Proxy
Mit Reverse Proxy
2 liegt daran, dass Sie eine Verbindung zu dem herstellen, was Sie vertreten
X besteht jedoch aus vielen gleichzeitigen Verbindungen, die diese Clients zu Ihnen herstellen
Um zu sehen, welche Verbindungen herumhängen, können Sie laufen
lsof -i :PORT
. Es werden alle für Nginx offenen Verbindungen und deren Status angezeigt.quelle