Come abilitare REUSEPORT in NGINX
NGINX, un server HTTP ad alte prestazioni, è diventato uno dei preferiti del settore grazie alla sua stabilità, al ricco set di funzionalità e all’utilizzo efficiente delle risorse. Tuttavia, per sfruttarne appieno il potenziale sono spesso necessarie configurazioni su misura. Una componente vitale di queste configurazioni è la direttiva reuseport, un potente strumento in grado di migliorare significativamente le prestazioni del tuo server.
Comprendere la Direttiva Reuseport
IL reuseport
La direttiva in NGINX è un’implementazione di SO_REUSEPORT
opzione socket disponibile in alcuni sistemi operativi. Consente a più socket di restare in ascolto sulla stessa combinazione di indirizzo IP e porta. Quando abilitato, reuseport
alloca un socket di ascolto individuale per ogni processo di lavoro.
Ciò può portare a una distribuzione del carico più equa e a prestazioni migliori. Con questa opzione abilitata, ogni Workers ha il proprio socket di ascolto e su ogni nuova connessione, il kernel sceglie uno di essi che lo riceverà, quindi non c’è conflitto di porte. La sintassi è la seguente:
listen (address)(:port) (options);
Dove le opzioni potrebbero includere reuseport
. Ad esempio:
listen 80 reuseport;
Questa riga indica a NGINX di ascoltare sulla porta 80 e di abilitare il file reuseport
come direttiva.
Perché dovresti prendere in considerazione l’abilitazione del reuseport
Abilitare reuseport
può aumentare significativamente le prestazioni del tuo server consentendo il bilanciamento del carico a livello di kernel. Con reuseport
abilitato, le connessioni in entrata vengono distribuite uniformemente tra i processi di lavoro. Ciò aiuta a ridurre la latenza, rendendo il tuo sito web o la tua applicazione più reattivi.
Inoltre, il reuseport
può aiutare a evitare il fragoroso problema del gregge, in cui più processi di lavoro si attivano per gestire una singola richiesta, solo per far sì che uno abbia successo mentre gli altri tornano a dormire. Ciò può comportare uno spreco di tempo della CPU e prestazioni non ottimali.
Precondizioni per abilitare il riutilizzo
Prima di abilitare reuseport
assicurati che il tuo sistema soddisfi i seguenti prerequisiti:
- Versione NGINX: La tua versione NGINX deve essere 1.9.1 o successiva.
- Supporto del sistema operativo: Il tuo sistema operativo deve supportare il
SO_REUSEPORT
opzione presa.
Puoi controllare la tua versione NGINX con il file nginx -v
comando.
nginx -v
Il supporto del sistema operativo può variare, ma la maggior parte delle distribuzioni Linux moderne dovrebbero supportarlo SO_REUSEPORT
.
Abilitazione del Reuserport in Nginx
Prima di apportare qualsiasi modifica, esegui sempre il backup della configurazione attuale. Dopo aver eseguito il backup, è possibile procedere con i seguenti passaggi:
Passaggio 1: apri il file di configurazione NGINX
Utilizzando il tuo editor di testo preferito, apri il file di configurazione NGINX. Ad esempio, potresti utilizzare il file nano
redattore come segue:
sudo nano /etc/nginx/nginx.conf
Passaggio 2: modificare la direttiva di ascolto
Individuare il listen
direttiva nel blocco server del tuo sito. Aggiungi il reuseport
opzione come mostrato di seguito:
server { listen 80 reuseport; ... }
Immaginiamo uno scenario più completo in cui un server NGINX è configurato per servire richieste HTTP e HTTPS su IPv4 e IPv6.
Ecco un esempio avanzato di come è possibile incorporare il file reuseport
direttiva:
server { # IPv4, HTTP listen 80 reuseport; # IPv6, HTTP listen (::):80 reuseport; server_name example.com www.example.com; location / { root /var/www/html; index index.html; } } server { # IPv4, HTTPS listen 443 ssl reuseport; # IPv6, HTTPS listen (::):443 ssl reuseport; server_name example.com www.example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { root /var/www/html; index index.html; } }
Reuseport
viene applicata sia a IPv4 che a IPv6 listen
, migliorando le prestazioni delle connessioni HTTP e HTTPS. Dopo aver modificato le direttive, salva le modifiche e chiudi il file. Se stai usando nano
puoi farlo premendo Ctrl+X
Poi Y
per confermare.
Test della configurazione Nginx con riutilizzo
Testare la nuova configurazione per assicurarsi che non siano presenti errori di sintassi. Usa il nginx -t
comando. Poi riavvia nginx
sudo systemctl restart nginx
Il sistema operativo non supporta il riutilizzo
Se il tuo sistema operativo non supporta reuseport
valuta la possibilità di aggiornare il tuo sistema operativo o di passare a una distribuzione Linux moderna che supporti SO_REUSEPORT
.
Conclusione
Configurare correttamente NGINX in base alle tue esigenze è vitale per mantenere una configurazione del server performante. IL reuseport
La direttiva è uno strumento potente nel tuo arsenale di configurazione NGINX che, se utilizzato correttamente, può migliorare significativamente le prestazioni del server consentendo un bilanciamento del carico più efficiente a livello di kernel.