Perché 'multi_accept' 'è disattivato' come impostazione predefinita in Nginx?


Risposte:


13

Probabilmente perché con on, tutti i processi di lavoro sono attivi e provano a gestire contemporaneamente tutte le richieste in arrivo. Se disabilitato, Nginx decide quale processo figlio gestisce la richiesta uno per uno. Dato che Nginx è molto efficiente in questo, questo probabilmente serve bene alla maggior parte delle persone. Alcuni lo considerano un rischio abilitarlo, poiché potrebbe inondare le connessioni dei lavoratori con richieste. Anche le tue impostazioni TCP a livello di sistema operativo avranno un ruolo in questo.


3
Ho avuto la situazione esatta. Avevo provato a scoprire cosa fanno i comandi automatici worker_rlimit_nofile, worker_connections e worker_processes. Nginx è un proxy inverso per un'applicazione che accetta i websocket. La configurazione di Nginx consente 50 connessioni per ogni lavoratore. Quando ho due lavoratori (quindi dovrebbero essere stabilite 100 connessioni) e multi_accept è attivo ottengo un errore che i websocket non possono essere creati (il lavoratore che ha già 50 connessioni lo prova ...). Quando multi_accept è disattivato, tutto funziona perfettamente.
Hamburml,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.