8 modi per ottimizzare le prestazioni di NGINX su Linux

8 modi per ottimizzare le prestazioni di NGINX su Linux

NGINX è un server Web popolare, gratuito e open source. Le configurazioni NGINX predefinite sono abbastanza buone per far funzionare il server web.

Tuttavia, se vuoi utilizzare NGINX al massimo, devi giocare con i suoi file di configurazione e impostare i parametri che ottimizzeranno le prestazioni del server. Troverai i file di configurazione nella directory /etc/nginx su una macchina Linux.

Cos’è NGINX?

NGINX è un server Web moderno che puoi utilizzare come streamer multimediale, server di posta, proxy inverso, bilanciamento del carico, server cache e altro ancora.

Utilizzato da molti grandi profili come VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter, ecc., NGINX è ampiamente noto per le sue prestazioni di prim’ordine. Un altro vantaggio dell’utilizzo di NGINX è che è facile da configurare e imparare.

Prerequisiti per ottimizzare le prestazioni di NGINX su Linux

È necessario soddisfare i seguenti requisiti prima di iniziare con le configurazioni NGINX:

  1. Un server NGINX distribuito e configurato su Linux
  2. Una conoscenza di base di NGINX e dei suoi file di configurazione

Se soddisfi questi requisiti, sei pronto per mettere a punto NGINX per prestazioni ottimali. Vediamo come farlo.

1. Configurare i processi di lavoro in NGINX

L’architettura NGINX è costituita da un processo master e diversi processi di lavoro. Il compito del processo principale è valutare la configurazione e gestire i lavoratori. D’altra parte, il ruolo di un processo di lavoro è gestire le richieste in arrivo e creare una connessione tra il client e il server.

Il valore di processo è impostato su auto per impostazione predefinita. Questo imposta il numero di processi di lavoro uguale al numero di core CPU disponibili. Per sapere quanti core della CPU sono presenti nel tuo sistema, esegui il seguente comando:

grep processor /proc/cpuinfo | wc -l

Se vuoi aumentare il numero di processi di lavoro, devi configurarlo nel file di configurazione NGINX.

Apri il file con nano:

nano etc/nginx/nginx.conf

Per configurare più processi di lavoro, modificare il valore predefinito sul numero massimo di core CPU disponibili nel sistema.

File nginx.configuration che mostra 4 processori configurati

2. Configurare le connessioni di lavoro

Un altro parametro che puoi modificare per migliorare le prestazioni di NGINX sono le connessioni di lavoro. Questo è il numero massimo di connessioni TCP che ogni processo di lavoro può gestire contemporaneamente.

La maggior parte dei sistemi ha un valore predefinito di 512 connessioni, ma molti sistemi moderni supportano anche un numero maggiore. Puoi controllare quante connessioni supporta il tuo sistema con:

ulimit -n

L’output sarà il numero massimo di connessioni supportate. È quindi possibile modificare la variabile worker_connections nel file di configurazione NGINX per migliorare le prestazioni.

3. Consenti compressione GZIP in NGINX

NGINX utilizza GZIP per la compressione e la decompressione dei file. Se abilitato nel file di configurazione NGINX, puoi risparmiare larghezza di banda e migliorare il tempo di caricamento del sito Web quando la connessione è lenta.

Per consentire la compressione GZIP, aggiungi le seguenti righe nel file di configurazione NGINX:

server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}

configurazione gzip commentata nel file di configurazione nginx

4. Limitare il valore di timeout in NGINX

Anche i valori di timeout ridotti svolgono un ruolo importante nel miglioramento delle prestazioni di NGINX. Le connessioni keepalive riducono il sovraccarico del processore e della rete durante l’apertura e la chiusura delle connessioni.

È possibile modificare i seguenti parametri nel file di configurazione per limitare i timeout:

http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}

5. Regola la dimensione del buffer

Puoi anche regolare i buffer NGINX per ottimizzare le prestazioni del server. Se la dimensione del buffer è troppo bassa, NGINX scriverà in un file temporaneo che causa l’esecuzione costante di enormi operazioni di I/O.

È necessario impostare i seguenti parametri del buffer affinché NGINX funzioni al meglio:

http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}

6. Disabilitare i registri di accesso o abilitare il buffering dei registri di accesso

I registri consumano una grande quantità di spazio su disco e cicli CPU/IO che possono influire sulle prestazioni del server se registra ogni richiesta.

È possibile disabilitare i registri di accesso che risparmieranno spazio su disco e l’elaborazione della CPU. Per disabilitare i log di accesso, aggiungi la seguente riga al file di configurazione di NGINX:

access_log off;

I registri sono importanti in quanto aiutano a risolvere un problema. Disabilitare completamente i log non è una buona pratica. In questo caso, puoi abilitare il buffering dei log di accesso. Ciò consentirà a NGINX di memorizzare nel buffer una serie di log e di scriverli insieme nel file di log contemporaneamente invece di applicare operazioni di log diverse a ogni richiesta.

Aggiungi la seguente riga nel file di configurazione NGINX per consentire il buffering dei log di accesso:

access_log /var/log/nginx/access.log main buffer=16k

7. Regola il periodo di memorizzazione nella cache del contenuto statico in NGINX

Il contenuto del sito Web che rimane lo stesso tra le pagine è noto come contenuto statico. La memorizzazione nella cache di questo contenuto consente di collocarlo in posizioni facilmente accessibili. Questo meccanismo riduce l’utilizzo della larghezza di banda, consente un’accessibilità rapida e, di conseguenza, migliora le prestazioni del sito web.

Quando un client richiede contenuto statico, il server servirà una versione memorizzata nella cache del contenuto. Aggiungi le seguenti righe nel file dell’host virtuale posizionato nella directory /etc/nginx/sites-available :

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}

Questa configurazione memorizzerà nella cache i file per 90 giorni dall’ultimo accesso al browser.

8. Abilita Apri cache file in NGINX

È inoltre possibile utilizzare i parametri della cache dei file aperti nel file di configurazione di NGINX per migliorarne le prestazioni. Questa direttiva consente al descrittore di file e ai file visitati di frequente di essere memorizzati nella cache del server.

Aggiungi le seguenti righe nella sezione http nel file di configurazione per abilitare la cache dei file aperti:

http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}

Ottieni il meglio da NGINX modificando i suoi file di configurazione

Una buona pratica da seguire durante la modifica delle configurazioni consiste nel gestire un’impostazione alla volta e testarla. Se funziona, passa all’impostazione successiva. In caso contrario, puoi sempre riportare la configurazione al valore predefinito.

Modificando i parametri configurati nei file di configurazione di NGINX come nginx.conf e i file dell’host virtuale, puoi hackerare NGINX per ottenere le migliori prestazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *