GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir les meilleures performances du serveur Nginx

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


Linux
  1. Linux :comment obtenir tous les journaux de connexion du système ?

  2. Utilisation d'openssl pour obtenir le certificat d'un serveur

  3. Comment puis-je faire fonctionner mon serveur Web Golang en arrière-plan ?

  4. Comment obtenir l'URL du fichier Dropbox à partir de la ligne de commande ?

  5. Comment puis-je obtenir mon adresse IP à partir de la ligne de commande ?

Comment installer Nginx sur Fedora 22

Comment installer NGINX sur Ubuntu 20.04

Comment installer Nginx sur CentOS 7

Comment configurer NGINX sur un serveur CentOS 7

Comment puis-je obtenir des messages de journal du serveur LAMP sur Ubuntu 10.04 ?

Comment puis-je obtenir la longueur d'un fichier vidéo à partir de la console ?