Vous pouvez régler presque tous les paramètres, mais cet article se concentre sur les quelques paramètres pour lesquels le réglage profite le plus aux utilisateurs. Il existe des paramètres que nous vous recommandons de modifier uniquement si vous avez une compréhension approfondie de NGINX et de Linux. Ainsi, vous saurez comment obtenir les meilleures performances du serveur Nginx
HI Guys !, Dans cet article, nous voyons essentiellement le réglage NGINX à l'aide de son fichier de configuration qui se trouve à /etc/nginx/nginx.conf
NGINX est bien connu en tant qu'équilibreur de charge, cache et serveur Web hautes performances, alimentant plus de 40 % des sites Web les plus fréquentés au monde. Dans la plupart des cas d'utilisation, les paramètres NGINX et Linux par défaut fonctionnent bien, mais l'obtention de performances optimales nécessite parfois un peu de réglage. Ce billet de blog traite de certains des paramètres NGINX et Linux à prendre en compte lors du réglage d'un système.
Processus de travail
NGINX peut exécuter plusieurs processus de travail, chacun capable de traiter un grand nombre de connexions simultanées. Vous pouvez contrôler le nombre de processus de travail et la façon dont ils gèrent les connexions avec les directives suivantes
worker_processes
Le nombre de processus de travail NGINX (la valeur par défaut est 1). Dans la plupart des cas, l'exécution d'un processus de travail par cœur de CPU fonctionne bien, et nous vous recommandons de définir cette directive sur auto pour y parvenir. Il peut arriver que vous souhaitiez augmenter ce nombre, par exemple lorsque les processus de travail doivent effectuer de nombreuses E/S de disque.
worker_connections
Le nombre maximal de connexions que chaque processus de travail peut gérer simultanément. La valeur par défaut est 512, mais la plupart des systèmes disposent de suffisamment de ressources pour en prendre en charge un plus grand nombre. Le paramètre approprié dépend de la taille du serveur et de la nature du trafic, et peut être découvert grâce à des tests.
Gardez les connexions actives
Les connexions Keepalive peuvent avoir un impact majeur sur les performances en réduisant la surcharge du processeur et du réseau nécessaire pour ouvrir et fermer les connexions. NGINX met fin à toutes les connexions client et crée des connexions séparées et indépendantes aux serveurs en amont. NGINX prend en charge les keepalives pour les clients et les serveurs en amont. Les directives suivantes concernent les keepalives des clients :
keepalive_requests
Le nombre de requêtes qu'un client peut effectuer sur une seule connexion keepalive. La valeur par défaut est 100, mais une valeur beaucoup plus élevée peut être particulièrement utile pour tester avec un outil de génération de charge, qui envoie généralement un grand nombre de requêtes à partir d'un seul client.
keepalive_timeout
Combien de temps une connexion keepalive inactive reste ouverte.
La directive suivante concerne les keepalives en amont
garder en vie
Le nombre de connexions keepalive inactives à un serveur en amont qui restent ouvertes pour chaque processus de travail. Il n'y a pas de valeur par défaut.
Pour activer les connexions keepalive aux serveurs en amont, vous devez également inclure les directives suivantes dans la configuration :
Journalisation des accès
La journalisation de chaque demande consomme à la fois des cycles d'UC et d'E/S, et l'un des moyens de réduire l'impact consiste à activer la mise en mémoire tampon des journaux d'accès. Avec la mise en mémoire tampon, au lieu d'effectuer une opération d'écriture distincte pour chaque entrée de journal, NGINX met en mémoire tampon une série d'entrées et les écrit ensemble dans le fichier en une seule opération.
Les entrées de journal sont également écrites lorsqu'un processus de travail rouvre ses fichiers journaux ou s'arrête. Pour désactiver complètement la journalisation des accès, incluez le paramètre off dans la directive access_log.
Envoyer le fichier
L'appel système sendfile() du système d'exploitation copie les données d'un descripteur de fichier à un autre, obtenant souvent une copie zéro, ce qui peut accélérer les transferts de données TCP. Pour permettre à NGINX de l'utiliser, incluez la directive sendfile dans le contexte http ou un contexte de serveur ou d'emplacement. NGINX peut ensuite écrire du contenu mis en cache ou sur disque sur un socket sans aucun changement de contexte vers l'espace utilisateur, ce qui rend l'écriture extrêmement rapide et consomme moins de cycles CPU. Notez cependant que, comme les données copiées avec sendfile() contournent l'espace utilisateur, elles ne sont pas soumises à la chaîne de traitement NGINX habituelle et aux filtres qui modifient le contenu, tels que gzip. Lorsqu'un contexte de configuration inclut à la fois la directive sendfile et des directives qui activent un filtre de modification de contenu, NGINX désactive automatiquement sendfile pour ce contexte.
Donc, vous savez déjà comment obtenir les meilleures performances du serveur Nginx
Site Web de Nginx