NGINX est un serveur Web populaire, gratuit et open source. Les configurations NGINX par défaut sont suffisamment bonnes pour faire fonctionner le serveur Web.
Cependant, si vous souhaitez utiliser NGINX au maximum, vous devez jouer avec ses fichiers de configuration et définir les paramètres qui optimiseront les performances du serveur. Vous trouverez les fichiers de configuration dans le /etc/nginx répertoire sur une machine Linux.
Qu'est-ce que NGINX ?
NGINX est un serveur Web moderne que vous pouvez utiliser comme streamer multimédia, serveur de messagerie, proxy inverse, équilibreur de charge, serveur de cache, etc.
Utilisé par de nombreux grands profils tels que VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter, etc., NGINX est largement connu pour ses performances de premier ordre. Un autre avantage de l'utilisation de NGINX est qu'il est facile à configurer et à apprendre.
Prérequis pour régler les performances de NGINX sous Linux
Vous devez satisfaire aux exigences suivantes avant de commencer avec les configurations NGINX :
- Un serveur NGINX déployé et configuré sous Linux
- Une compréhension de base de NGINX et de ses fichiers de configuration
Si vous remplissez ces conditions, vous êtes prêt à régler NGINX pour des performances optimales. Voyons comment faire.
1. Configurer les processus de travail dans NGINX
L'architecture NGINX se compose d'un processus maître et de plusieurs processus de travail. Le travail du processus maître est d'évaluer la configuration et de gérer les travailleurs. D'autre part, le rôle d'un processus de travail est de traiter les demandes entrantes et de créer une connexion entre le client et le serveur.
La valeur de processus est réglée sur auto par défaut. Cela définit le nombre de processus de travail égal au nombre de cœurs de processeur disponibles. Pour savoir combien de cœurs de processeur sont présents dans votre système, exécutez la commande suivante :
grep processeur /proc/cpuinfo | wc -l
Si vous souhaitez augmenter le nombre de processus de travail, vous devez le configurer dans le fichier de configuration NGINX.
Ouvrez le fichier avec nano :
nano etc/nginx/nginx.conf
Pour configurer davantage de processus de travail, remplacez la valeur par défaut par le nombre maximal de cœurs de processeur disponibles dans votre système.
2. Configurer les connexions de travail
Un autre paramètre que vous pouvez modifier pour améliorer les performances de NGINX est les connexions de travail. Il s'agit du nombre maximal de connexions TCP que chaque processus de travail peut gérer simultanément.
La plupart des systèmes ont une valeur par défaut de 512 connexions, mais de nombreux systèmes modernes prennent également en charge un plus grand nombre. Vous pouvez vérifier le nombre de connexions prises en charge par votre système avec :
ulimit -n
La sortie sera le nombre maximum de connexions prises en charge. Vous pouvez ensuite modifier le connexions_travailleurs variable dans le fichier de configuration NGINX pour améliorer les performances.
3. Autoriser la compression GZIP dans NGINX
NGINX utilise GZIP pour la compression et la décompression des fichiers. S'il est activé dans le fichier de configuration NGINX, vous pouvez économiser de la bande passante et améliorer le temps de chargement du site Web lorsque la connexion est lente.
Pour autoriser la compression GZIP, ajoutez les lignes suivantes dans le fichier de configuration NGINX :
serveur {
gzip activé ;
gzip_vary activé ;
gzip_min_length 10240 ;
gzip_proxied a expiré non-cacheNon-magasinprivé auth;
gzip_types texte/texte brut/texte css/texte xml/application javascript/application x-javascript/xml ;
gzip_disable "MSIE [1-6]\.";
}
4. Limiter la valeur du délai d'expiration dans NGINX
Les valeurs de délai d'attente réduites jouent également un rôle majeur dans l'amélioration des performances de NGINX. Le rester en vie Les connexions réduisent la surcharge du processeur et du réseau lors de l'ouverture et de la fermeture des connexions.
Vous pouvez modifier les paramètres suivants dans le fichier de configuration pour limiter les délais :
http
{
client_body_timeout 12 ;
client_header_timeout 12 ;
keepalive_timeout 15 ;
send_timeout 10 ;
}
5. Ajuster la taille du tampon
Vous pouvez également ajuster les tampons NGINX pour optimiser les performances du serveur. Si la taille de la mémoire tampon est trop faible, NGINX écrira dans un fichier temporaire qui entraînera l'exécution constante d'énormes opérations d'E/S.
Vous devez définir les paramètres de tampon suivants pour que NGINX fonctionne au mieux :
http
{
client_body_buffer_size 10K ;
client_header_buffer_size 1k ;
client_max_body_size 8m ;
large_client_header_buffers 4 4k ;
}
6. Désactiver les journaux d'accès ou activer la mise en mémoire tampon des journaux d'accès
Les journaux consomment une grande quantité d'espace disque et de cycles CPU/E/S, ce qui peut affecter les performances du serveur s'il enregistre chaque requête.
Vous pouvez désactiver les journaux d'accès, ce qui économisera de l'espace disque et du traitement du processeur. Pour désactiver les journaux d'accès, ajoutez la ligne suivante au fichier de configuration NGINX :
access_log off ;
Les journaux sont importants car ils aident à résoudre un problème. La désactivation complète des journaux n'est pas une bonne pratique. Dans ce cas, vous pouvez activer la mise en mémoire tampon des journaux d'accès. Cela permettra à NGINX de mettre en mémoire tampon une série de journaux et de les écrire simultanément dans le fichier journal au lieu d'appliquer différentes opérations de journalisation à chaque demande.
Ajoutez la ligne suivante dans le fichier de configuration NGINX pour autoriser la mise en mémoire tampon des journaux d'accès :
access_log/var/log/nginx/access.logprincipaltampon=16k
7. Ajuster la période de mise en cache du contenu statique dans NGINX
Le contenu du site Web qui reste le même d'une page à l'autre est appelé contenu statique. La mise en cache de ce contenu permet de le placer dans des emplacements facilement accessibles. Ce mécanisme réduit l'utilisation de la bande passante, permet une accessibilité rapide et améliore par la suite les performances du site Web.
Lorsqu'un client demande un contenu statique, le serveur fournit une version mise en cache du contenu. Ajoutez les lignes suivantes dans le fichier d'hôte virtuel placé dans le /etc/nginx/sites-available annuaire:
emplacement ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expire 90j ;
}
Cette configuration mettra les fichiers en cache pendant 90 jours depuis le dernier accès au navigateur.
8. Activer le cache de fichier ouvert dans NGINX
Vous pouvez également utiliser les paramètres de cache de fichiers ouverts dans le fichier de configuration NGINX pour améliorer ses performances. Cette directive permet au descripteur de fichier et aux fichiers fréquemment visités d'être mis en cache sur le serveur.
Ajoutez les lignes suivantes dans le http section dans le fichier de configuration pour activer le cache de fichiers ouverts :
http {
open_file_cache max=1024 inactif=10s ;
open_file_cache_valid 60s ;
open_file_cache_min_uses 2 ;
open_file_cache_errors activé ;
}
Tirez le meilleur parti de NGINX en modifiant ses fichiers de configuration
Une bonne pratique à suivre lors du changement de configuration consiste à traiter un paramètre à la fois et à le tester. Si cela fonctionne, passez au paramètre suivant. Sinon, vous pouvez toujours remettre la configuration à la valeur par défaut.
En modifiant les paramètres configurés dans les fichiers de configuration NGINX tels que nginx.conf et les fichiers de l'hôte virtuel, vous pouvez pirater NGINX pour obtenir les meilleures performances.