GNU/Linux >> Linux Esercitazione >  >> Linux

Filtra e ottimizza le richieste di file statici con NGINX su Ubuntu 18.04

NGINX è un server web ad alte prestazioni utilizzato soprattutto per la gestione di file statici e come proxy inverso, ma che, grazie alla sua versatilità, può essere sfruttato in qualsiasi tipo di situazione.

In questa guida imparerai come filtrare e ottimizzare le richieste di file statici con NGINX, al fine di aumentare le prestazioni del tuo sito web e ridurre il carico del server, utilizzando alcuni accorgimenti, come abilitare la compressione Gzip, modificare il numero di processi/connessioni o la dimensione dei buffer.

Per prima cosa, connettiti al tuo server tramite una connessione SSH. Se non l'hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in modo sicuro con SSH. Nel caso di un server locale, vai al passaggio successivo e apri il terminale del tuo server.

Modifica dei parametri di configurazione

Apri il file di configurazione NGINX utilizzando un editor, come nano o vi. Per questo esempio è stato utilizzato nano.

$ sudo nano /etc/nginx/nginx.conf

Abilitazione della compressione Gzip

Abilitando la compressione Gzip, è possibile ridurre la quantità di dati da trasmettere. Fai attenzione a non aumentare troppo il livello di compressione di Gzip, perché potrebbe influire sulle prestazioni della CPU.

gzip             on;

gzip_comp_level  2;

gzip_min_length  1000;

gzip_proxied     expired no-cache no-store private auth;

gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

Impostazione del numero di processi e connessioni

Il parametro 'worker_processes' si riferisce al numero di processi istanziati da NGINX dopo averlo avviato. Il numero di processi dovrebbe normalmente essere uguale al numero di core sul server. Ad esempio, se il server ha un processore a 4 core è necessario impostare il parametro con il valore 4, come segue:

worker_processes 4;

Il parametro worker_connections si riferisce al numero di client che verranno serviti da un singolo processo. Per impostare un valore ottimale per la configurazione, non devi fare altro che verificare i limiti dei tuoi core con il comando:

$ ulimit -n

Il risultato sarà il numero massimo di connessioni per processo. Quindi, per impostarlo:

worker_processes 1024;

Cambiare la dimensione dei Buffer

Se la dimensione dei buffer è troppo bassa, NGINX sarà costretto a creare file temporanei, causando numerose operazioni sul disco. Per evitarlo, imposta correttamente la dimensione dei buffer.

client_max_body_size:indica la dimensione massima della richiesta del client

client_body_buffer_size:si riferisce alla dimensione del buffer per le richieste POST

client_header_buffer_size:si riferisce alla dimensione del buffer relativa all'intestazione della richiesta del client

Modificando questi parametri con i seguenti valori si dovrebbe ottenere un buon risultato:

client_max_body_size 8m;

client_body_buffer_size 10K;

client_header_buffer_size 1k;

Cambiare la durata della cache

Per gestire la durata della cache dei file statici, non devi fare altro che specificare le estensioni dei file e la loro durata in questo modo:

location ~*.(jpg|jpeg|png|gif|ico|css|js)$ {

expires 365d;

}

dove con 365d si specifica che la cache per le sue estensioni durerà 365 giorni.

Ridurre i timeout

I parametri client_body_timeout e client_header_timeout indicano rispettivamente il tempo di attesa per il corpo o l'intestazione della richiesta. Se il server non riceve il corpo o l'intestazione entro questo tempo, \ la connessione viene terminata con un errore di timeout.

Il parametro send_timeout indica il tempo massimo tra due operazioni di lettura. se questo tempo viene superato, NGINX interromperà la connessione con il client.

Invece, il parametro keepalive_timeout si riferisce alla durata massima di una connessione Keep-Alive prima di terminarla.

Impostando questi valori come segue, si dovrebbe ottenere un buon risultato:

client_body_timeout 12;

client_header_timeout 12;

send_timeout 10;

keepalive_timeout 15;

Disabilitazione registri

NGINX monitora ogni richiesta effettuata in un file di registro. Per disabilitare questa funzione, tutto ciò che devi fare è modificare il parametro access_log come segue:

access_log off;

Applicazione delle modifiche

Riavvia il servizio NGINX per implementare le modifiche:

$ sudo service nginx restart

Linux
  1. Come installare phpMyAdmin con HHVM, Nginx e MariaDB su un VPS Ubuntu 14.04

  2. Installa Redmine su un server Ubuntu 14.04 con MariaDB, Puma e Nginx.

  3. Installa WordPress con Varnish e Nginx su Ubuntu

  4. Come configurare una semplice app nodejs con nginx e pm2 sul server Ubuntu

  5. Come installare Node.js con NVM e Nginx su Ubuntu 22.04

Come installare Nginx su Ubuntu 14.04

Come installare Nginx, MySQL e PHP (LEMP) su un server Ubuntu 15.04

Come installare NGINX su Ubuntu 20.04

Come aggiungere il supporto PHP-FPM su Apache e Nginx Web Server su Ubuntu 18.04

Come configurare un server Seafile con Nginx su Ubuntu 18.04

Installa e configura Varnish Cache con Nginx Web Server su Ubuntu 18.04