Warum ist 'multi_accept' in Nginx standardmäßig 'off'?

17

Ich habe festgestellt, dass 'multi_accept' in Nginx standardmäßig 'off' ist:

multi_accept

Max Zueff
quelle

Antworten:

13

Wahrscheinlich, weil bei aktiv sind alle Worker-Prozesse aktiv und versuchen, alle eingehenden Anforderungen gleichzeitig zu verarbeiten. Wenn diese Option deaktiviert ist, entscheidet Nginx nacheinander, welcher untergeordnete Prozess die Anforderung bearbeitet. Da Nginx dabei sehr effizient ist, kommt dies wahrscheinlich den meisten Menschen zugute. Einige halten es für ein Risiko, es zu aktivieren, da es die Worker-Verbindungen mit Anfragen überfluten kann. Auch Ihre TCP-Einstellungen auf Betriebssystemebene werden wahrscheinlich eine Rolle spielen.

JayMcTee
quelle
3
Ich hatte die genaue Situation. Ich hatte versucht herauszufinden, was die automatischen Befehle worker_rlimit_nofile, worker_connections und worker_processes bewirken. Nginx ist ein Reverse-Proxy für eine Anwendung, die Websockets akzeptiert. Nginx-Konfiguration ermöglicht 50 Verbindungen für jeden Arbeiter. Wenn ich zwei Worker habe (daher sollten 100 Verbindungen hergestellt werden) und multi_accept aktiviert ist, erhalte ich die Fehlermeldung, dass die Websockets nicht erstellt werden können (der Worker, der bereits 50 Verbindungen hat, versucht es ...). Wenn multi_accept ausgeschaltet ist, funktioniert alles einwandfrei.
Hamburml