2013-07-08 17 views
6

Utilizziamo nginx con un server applicazioni come back-end.Nginx: numero limite di connessioni simultanee per IP al backend

È necessario limitare il numero di connessioni simultanee per IP al back-end. A tale scopo è stata utilizzata la direttiva nginx limit_conn. Ma non funziona bene in tutti i casi. Se l'utente genera molte connessioni da un IP e le chiude rapidamente, allora nginx passa questa richiesta a un back-end, ma poiché la connessione client è già chiusa, questa connessione non viene conteggiata in limit_conn.

È possibile limitare il numero di connessioni simultanee per IP al server di backend con nginx?

risposta

3

Si consiglia di impostare

proxy_ignore_client_abort off; 

Determina dovrebbe la connessione con un server Proxied essere chiuso se un cliente chiude una connessione senza attendere una risposta.

dal documentation

Un altro suggerimento è quello di utilizzare limit_req per limitare la velocità richiesta.

+0

Il team di sviluppo di Nginx suggerisce di utilizzare anche "proxy_ignore_client_abort off". Funziona così lontano. – Anton

0

Ho paura che questa funzione non sia ancora disponibile per nginx fuori dalla scatola. Secondo i Nginx FAQ

Molti utenti hanno chiesto che Nginx implementare una funzione del carico bilanciatore di limitare il numero di richieste al back-end (di solito a uno). Mentre il supporto per questo è previsto, vale la pena ricordare che la domanda per questa funzione è radicata nel comportamento scorretto da parte della domanda essere proxy

Ho visto alcuni 3 ° modulo partiti per questo nginx-limit-upstream ma io' non ho mai provato

Problemi correlati