GNU/Linux >> Tutoriels Linux >  >> Linux

Filtrez et optimisez les requêtes de fichiers statiques avec NGINX sur Ubuntu 18.04

NGINX est un serveur web performant utilisé notamment pour gérer des fichiers statiques et comme proxy inverse, mais qui, grâce à sa polyvalence, peut être exploité dans tout type de situation.

Dans ce guide, vous apprendrez à filtrer et à optimiser les demandes de fichiers statiques avec NGINX, afin d'augmenter les performances de votre site Web et de réduire la charge du serveur, en utilisant quelques astuces, telles que l'activation de la compression Gzip, la modification du nombre de processus/connexions ou la taille des buffers.

Tout d'abord, connectez-vous à votre serveur via une connexion SSH. Si vous ne l'avez pas encore fait, il est recommandé de suivre notre guide pour vous connecter en toute sécurité avec SSH. Dans le cas d'un serveur local, passez à l'étape suivante et ouvrez le terminal de votre serveur.

Modification des paramètres de configuration

Ouvrez le fichier de configuration NGINX à l'aide d'un éditeur, tel que nano ou vi. Pour cet exemple, nano a été utilisé.

$ sudo nano /etc/nginx/nginx.conf

Activer la compression Gzip

En activant la compression Gzip, la quantité de données à transmettre peut être réduite. Veillez à ne pas trop augmenter le niveau de compression de Gzip, car cela pourrait affecter les performances du processeur.

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;

Définir le nombre de processus et de connexions

Le paramètre « worker_processes » fait référence au nombre de processus instanciés par NGINX après son démarrage. Le nombre de processus doit normalement être égal au nombre de cœurs sur le serveur. Par exemple, si le serveur a un processeur à 4 cœurs, le paramètre avec la valeur 4 doit être défini comme suit :

worker_processes 4;

Le paramètre worker_connections fait référence au nombre de clients qui seront servis par un seul processus. Pour définir une valeur optimale pour la configuration, il suffit de vérifier les limites de vos cœurs avec la commande :

$ ulimit -n

Le résultat sera le nombre maximum de connexions par processus. Ensuite, pour le paramétrer :

worker_processes 1024;

Modification de la taille des tampons

Si la taille des buffers est trop faible, NGINX sera obligé de créer des fichiers temporaires, provoquant de nombreuses opérations sur le disque. Pour l'éviter, définissez correctement la taille des tampons.

client_max_body_size :indique la taille maximale de la requête client

client_body_buffer_size :fait référence à la taille du tampon pour les requêtes POST

client_header_buffer_size :fait référence à la taille du tampon par rapport à l'en-tête de la requête client

En modifiant ces paramètres avec les valeurs suivantes, un bon résultat devrait être obtenu :

client_max_body_size 8m;

client_body_buffer_size 10K;

client_header_buffer_size 1k;

Modification de la durée du cache

Pour gérer la durée du cache de fichiers statiques, il vous suffit de spécifier les extensions de fichiers et leur durée de cette manière :

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

expires 365d;

}

où avec 365d il est précisé que le cache de ses extensions durera 365 jours.

Réduire les délais d'attente

Les paramètres client_body_timeout et client_header_timeout indiquent respectivement le temps d'attente du corps ou de l'en-tête de la requête. Si le serveur ne reçoit pas le corps ou l'en-tête dans ce délai, \ la connexion se termine avec une erreur de délai d'attente.

Le paramètre send_timeout indique le temps maximum entre deux opérations de lecture. si ce délai est dépassé, NGINX mettra fin à la connexion avec le client.

Au lieu de cela, le paramètre keepalive_timeout fait référence à la durée maximale d'une connexion Keep-Alive avant de la terminer.

En définissant ces valeurs comme suit, un bon résultat devrait être obtenu :

client_body_timeout 12;

client_header_timeout 12;

send_timeout 10;

keepalive_timeout 15;

Désactivation des journaux

NGINX surveille chaque demande faite dans un fichier journal. Pour désactiver cette fonction, il suffit de modifier le paramètre access_log comme suit :

access_log off;

Appliquer les modifications

Redémarrez le service NGINX pour mettre en œuvre les modifications :

$ sudo service nginx restart

Linux
  1. Comment installer phpMyAdmin avec HHVM, Nginx et MariaDB sur un VPS Ubuntu 14.04

  2. Installez Redmine sur un serveur Ubuntu 14.04 avec MariaDB, Puma et Nginx.

  3. Installer WordPress avec Varnish et Nginx sur Ubuntu

  4. Comment configurer une application nodejs simple avec nginx et pm2 sur le serveur ubuntu

  5. Comment optimiser la mise en cache des fichiers statiques Apache sur Ubuntu 18.04

Comment installer Nginx sur Ubuntu 14.04

Comment installer Nginx, MySQL et PHP (LEMP) sur un serveur Ubuntu 15.04

Comment installer NGINX sur Ubuntu 20.04

Comment ajouter la prise en charge de PHP-FPM sur Apache et Nginx Web Server sur Ubuntu 18.04

Comment configurer un serveur Seafile avec Nginx sur Ubuntu 18.04

Installer et configurer Varnish Cache avec Nginx Web Server sur Ubuntu 18.04