Nginx - Limitazione delle richieste

Sommario
Nonostante Nginx è orientato agli eventi e che questo ci permette di ottimizzare le risorse per dare risposte rapide e con un minor consumo di risorse, ci sono momenti in cui non basta e allo stesso modo il servizio inizia a mancare.
Quando questo accade il web inizia ad avere molti errori di "Tempo scaduto", cioè passa molto tempo dalla richiesta fino a Nginx può occuparsene, la soluzione immediata e consigliata è migliorare l'hardware del server, o più RAM o un processore migliore o entrambi, tuttavia ciò non è sempre possibile.
Limite
Il limite che possiamo stabilire è ridurre la quantità di memoria consumata dalle richieste e ridurne la frequenza, lo otteniamo creando una zona utilizzando una sessione per essere in grado di sapere chi limiteremo nelle loro richieste contro il nostro servizio Nginx.
Vediamo nell'immagine seguente un esempio di come possiamo stabilire queste zone e limiti:

Come funziona il limite?
L'esempio sopra è molto facile da capire, prima nel nostro Blocco HTTP abbiamo stabilito la zona, lo facciamo con limit_req_zone, che ci dice qual è la variabile che andremo a stabilire per costruirla, in questo caso la indirizzo IP remoto binario, cioè del client, questo è ciò che servirà come valore identificativo o chiave della sessione, quindi con zona stabiliamo lo spazio che andremo ad assegnare a detta zona ed infine la frequenza delle richieste accettate, in questo caso sarà una richiesta al secondo.
Ora nel nostro blocco del server insieme a limit_req gli diciamo che prenderà la zona che abbiamo stabilito nel Blocco HTTP, questo ci permette di stabilire un numero "infinito" di zone, qui il limite è la quantità di memoria che ha l'apparecchiatura dove ospitiamo il servizio Nginx. Quando viene raggiunto il limite di richieste, gli utenti vedranno un errore 503 servizio non disponibile, evitando così che l'esperienza degli altri utenti soffra di prestazioni scadenti.
Chiave di sessionePossiamo usare praticamente qualsiasi valore come chiave di sessione, tuttavia si consiglia di utilizzare un valore piccolo che possa essere alloggiato in memoria con tutte le richieste aggiuntive, in modo che moltiplicando il totale delle connessioni in entrata per il valore della dimensione di tutte le sessioni sono inferiore alla dimensione della cache della sessioneSe ciò non avviene, non potremo utilizzare il massimo delle zone che stiamo istituendo, distruggendo così lo scopo di ciò che stiamo costruendo con i limiti delle richieste.
Con questo finiamo questo tutorial, come vediamo nonostante il fatto che l'idea sia sempre quella di migliorare le prestazioni del nostro servizio, Nginx Ci offre anche strumenti che possiamo usare quando il nostro hardware non dà di più, quello che abbiamo spiegato qui dovrebbe essere l'ultima risorsa, ma ci sono casi come i server condivisi che non possiamo apportare modifiche e che dobbiamo fare appello per questo tipo di soluzione.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave