Maîtriser les configurations Nginx pour des performances optimales du serveur Web
Vous voulez des sites Web plus rapides et meilleurs performances du serveur? Nginx peut vous aider. Grâce à sa conception pilotée par événements, Nginx gère efficacement des milliers de connexions, ce qui en fait un choix de premier ordre pour les sites Web à fort trafic et les applications en temps réel. Mais pour exploiter tout son potentiel, une configuration appropriée est essentielle.
Principaux points à retenir :
- Améliorer les performances : Ajustez les processus de travail et activez la compression pour réduire l’utilisation des ressources et accélérer les réponses.
- Gérer le trafic : Utilisez l'équilibrage de charge pour répartir le trafic sur les serveurs et optimiser les charges lourdes.
- Connexions sécurisées : Configurez la terminaison SSL pour une sécurité améliorée sans surcharger les serveurs back-end.
- Applications en temps réel : Configurez la prise en charge WebSocket pour une communication transparente sur les plateformes en temps réel.
- Surveiller efficacement : Utilisez des outils tels que Prometheus et Grafana pour suivre la santé et les performances du serveur.
Exemples de configuration rapide :
- Processus de travail : Correspondance avec les cœurs du processeur (
processus_travailleurs 4;). - Compression: Activer Gzip (
gzip activé ; gzip_comp_level 6 ;). - Mise en cache : Configurer la mise en cache du proxy pour la vitesse (
chemin_cache_proxy /var/cache/nginx ;). - Équilibrage de charge : Distribuez le trafic avec la méthode round-robin ou avec le moins de connexions possible.
Conseil de pro : Surveillez et ajustez régulièrement vos paramètres pour assurer le bon fonctionnement de votre serveur. Que vous gériez des sites Web à fort trafic, du contenu statique ou des applications en temps réel, ces configurations peuvent faire toute la différence.
Optimisation des performances de NGINX Open Source et NGINX Plus

Principaux fichiers de configuration et paramètres Nginx
Pour tirer le meilleur parti de votre serveur Nginx, commencez par comprendre ses fichiers de configuration et par affiner les paramètres clés. Voici un aperçu de ce que vous devez savoir.
Comprendre les fichiers de configuration Nginx
Les paramètres Nginx sont organisés en deux zones principales :
- Paramètres globaux: Trouvé dans
/etc/nginx/nginx.conf - Paramètres spécifiques au site:Situé à
/etc/nginx/sites-disponibles/
Avant d'appliquer les modifications, testez votre configuration avec nginx -t pour garantir qu'il est sans erreur.
Optimisation des processus et des connexions des travailleurs
Les processus de travail et les connexions jouent un rôle important dans les performances de votre serveur. Voici un guide rapide pour les configurer :
| Paramètre | La description | Exemple de valeur |
|---|---|---|
processus_de_travail | Nombre de processus de travail | Correspond aux cœurs du processeur |
connexions_travailleurs | Nombre maximal de connexions par travailleur | 1024 – 2048 |
délai d'attente de maintien en vie | Délai de connexion expiré | 65 secondes |
Astuce : ajustez ces valeurs en fonction du matériel de votre serveur.
Par exemple, si votre serveur dispose de 4 cœurs de processeur, votre configuration pourrait ressembler à ceci :
processus_travailleurs 4 ; événements { connexions_travailleurs 1024 ; } Après avoir optimisé les processus de travail, vous pouvez encore améliorer les performances en activant la compression et la mise en cache.
Utilisation de la compression et de la mise en cache Gzip
La compression et la mise en cache permettent de réduire la bande passante et d'améliorer les temps de chargement. Voici comment les configurer :
Activer la compression Gzip :
gzip activé ; gzip_comp_level 6 ; gzip_types texte/texte brut/css application/json application/javascript ; Configurer la mise en cache :
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:10m inactive=60m; proxy_cache one; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; Le chemin_cache_proxy La directive crée une zone de cache pour le contenu fréquemment consulté, ce qui réduit la charge sur votre backend. Vous pouvez également utiliser ouvrir_le_cache_du_fichier pour stocker les fichiers fréquemment consultés en mémoire, réduisant ainsi l'utilisation du disque.
Techniques avancées pour l'équilibrage de charge et SSL
S’appuyant sur l’optimisation des processus de travail et la mise en cache, ces techniques se concentrent sur l’amélioration de la distribution du trafic et de la sécurité.
Configuration de l'équilibrage de charge
Nginx propose des outils puissants pour répartir le trafic entrant sur plusieurs serveurs. Voici une configuration de base :
backend en amont { # Par défaut : round-robin pour une distribution équilibrée serveur localhost:8080 ; serveur localhost:8081 ; serveur localhost:8082 ; # Décommenter pour un minimum de connexions (mieux pour les charges de travail inégales) # least_conn ; } serveur { listen 80 ; emplacement / { proxy_pass http://backend ; proxy_set_header Hôte $host ; proxy_set_header X-Real-IP $remote_addr ; } } - Tournoi à la ronde est idéal pour les serveurs avec des temps de réponse similaires.
- Moins de connexions fonctionne mieux lorsque les demandes varient en complexité, ce qui permet d'éviter de surcharger les serveurs plus lents.
- Pour la persistance de la session, activez Hachage IP pour diriger les utilisateurs vers le même serveur de manière cohérente.
Configuration de la terminaison SSL
La terminaison SSL transfère les tâches de chiffrement vers Nginx, réduisant ainsi la charge de travail sur les serveurs back-end. Une étude de Bobcares suggère que cela peut réduire la latence de négociation SSL jusqu'à 50%.
Voici comment combiner la terminaison SSL avec l’équilibrage de charge :
http { backend en amont { serveur localhost:8080; serveur localhost:8081; } serveur { listen 443 ssl; nom_serveur example.com; certificat_ssl /chemin/vers/certificate.crt; clé_certificat_ssl /chemin/vers/clé/privée.key; protocoles_ssl TLSv1.2 TLSv1.3; chiffrements_serveur_préférés_ssl activés; cache_session_ssl partagé:SSL:10m; emplacement / { proxy_pass http://backend; en-tête_ensemble_proxy Hôte $host; en-tête_ensemble_proxy X-Real-IP $remote_addr; } } } Conseils importants sur SSL:
- S'en tenir à TLS 1.2 et 1.3 pour une meilleure sécurité.
- Donnez la priorité aux chiffrements côté serveur pour un cryptage plus fort.
- Activez la mise en cache de session pour améliorer les performances.
Personnaliser Nginx pour des besoins spécifiques
Optimisation de Nginx pour les sites Web à fort trafic
Pour les sites Web à fort trafic, la configuration de Nginx doit être affinée pour gérer efficacement les charges importantes. Le réglage des paramètres clés peut améliorer considérablement la réactivité du serveur et les performances globales.
Ajustements de la taille de la mémoire tampon
http { taille_tampon_corps_client 16k; taille_tampon_en-tête_client 4k; taille_max_corps_client 8m; grands_tampons_en-tête_client 4 8k; } Ces paramètres donnent la priorité à l'utilisation de la mémoire par rapport aux E/S de disque, accélérant ainsi le traitement des requêtes. Par exemple, l'augmentation taille_tampon_corps_client réduit le besoin d'écritures de fichiers temporaires pendant les requêtes.
Gestion efficace des journaux
http { access_log /var/log/nginx/access.log mémoire tampon combinée = 32 Ko flush = 5 s ; error_log /var/log/nginx/error.log warn ; } L'utilisation d'une mémoire tampon de 32 Ko et d'un intervalle de vidage de 5 secondes minimise les opérations sur le disque tout en gardant les journaux précis et à jour.
Paramètres de temporisation
http { client_body_timeout 12; client_header_timeout 12; send_timeout 10; } Ces valeurs de délai d’expiration aident à empêcher les clients lents de consommer inutilement les ressources du serveur.
Une fois ces ajustements en place, Nginx peut également être personnalisé pour les applications qui nécessitent une communication continue, telles que les WebSockets.
Configuration de Nginx pour la prise en charge de WebSocket
Les WebSockets sont un composant essentiel des applications en temps réel. Une configuration appropriée de Nginx pour gérer les connexions WebSocket garantit des performances fluides même sous charge.
map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name example.com; location /websocket { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; # Paramètres de délai d'expiration pour les connexions WebSocket proxy_read_timeout 300s; proxy_send_timeout 300s; } } Détails de configuration clés de WebSocket :
| Directif | Objectif |
|---|---|
| version_proxy_http | Active HTTP/1.1 pour la prise en charge de WebSocket |
| délai d'attente de lecture du proxy | Définit le temps maximal entre les paquets de données |
| délai d'expiration d'envoi du proxy | Définit le temps maximum d'envoi des données |
| contournement du cache proxy | Désactive la mise en cache du trafic WebSocket |
Le carte La directive gère efficacement les mises à niveau de connexion, garantissant une communication WebSocket fluide.
Pour éviter les abus, une limitation de débit peut être appliquée aux connexions WebSocket :
http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; location /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... reste de la configuration WebSocket } } Cette configuration limite les adresses IP à 5 requêtes par seconde avec une rafale de 20 requêtes, protégeant ainsi contre les attaques DoS tout en maintenant la disponibilité du service.
sbb-itb-59e1987
Bonnes pratiques pour la surveillance et les performances de Nginx
Au-delà de la configuration initiale, l'optimisation de votre configuration Nginx garantit qu'elle peut gérer efficacement les charges de travail changeantes.
Domaines clés sur lesquels se concentrer
L’amélioration des performances de Nginx implique d’affiner des paramètres spécifiques qui affectent directement l’efficacité de fonctionnement de votre serveur.
Gestion des processus de travail
Le worker_rlimit_nofile La directive est essentielle pour la gestion des descripteurs de fichiers. Elle garantit que votre serveur peut gérer plusieurs connexions simultanées sans atteindre les limites pendant les périodes de trafic élevé :
travailleur_rlimit_nofile 65535; Utilisation du cache de fichiers ouvert
Le cache de fichiers ouvert minimise les E/S sur le disque en mettant en cache les métadonnées des fichiers fréquemment consultés, ce qui accélère la diffusion du contenu statique :
http { open_file_cache max=1000 inactif=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; } Une fois ces optimisations en place, un suivi régulier devient essentiel pour garantir des performances continues et repérer les domaines nécessitant des ajustements supplémentaires.
Surveillance des performances de Nginx
La surveillance permet de suivre les performances de votre serveur et de détecter les goulots d'étranglement ou les inefficacités. Les indicateurs clés à surveiller incluent les taux de requêtes, les taux d'erreur et l'utilisation des ressources. Des outils comme Prometheus et Grafana facilitent la collecte et la visualisation de ces données.
Recommandé Outils de surveillance
| Outil | Objectif | Indicateurs clés |
|---|---|---|
| Prométhée | Collecte des données de performances en direct | Taux de demandes, délais de réponse, taux d'erreur |
| Grafana | Visualise les tendances de performance | Utilisation du processeur, consommation de mémoire, modèles de trafic |
| htop | Suivi de l'utilisation des ressources système | Utilisation des processus, allocation de mémoire |
Configuration des mesures de performance
Activez la surveillance de l’état dans Nginx en configurant les éléments suivants :
emplacement /nginx_status { stub_status activé ; access_log désactivé ; autoriser 127.0.0.1 ; refuser tout ; } Cette configuration fournit des informations sur :
- Connexions actives
- Nombre total de connexions acceptées
- Statistiques de traitement des demandes
- Connexions de lecture, d'écriture et d'attente
Analyser efficacement les journaux
La journalisation en mémoire tampon peut réduire la charge sur le disque en regroupant les écritures de journaux. Cela permet de maintenir les performances du serveur sans sacrifier la précision de vos journaux.
« Un suivi et des ajustements réguliers en fonction des données de performance sont essentiels pour obtenir des résultats optimaux. Il est essentiel d'éviter d'effectuer trop de modifications à la fois, car cela peut compliquer le dépannage. »
Options d'hébergement pour Nginx
Choisir le bon environnement d'hébergement est tout aussi important que peaufiner les configurations Nginx. La bonne plateforme garantit que vos optimisations produisent les meilleurs résultats.
Caractéristiques de Serverion Hébergement

Serverion propose une plateforme d'hébergement conçue spécifiquement pour Nginx, offrant des performances et une fiabilité exceptionnelles.
Stockage et performances
Serverion utilise un stockage SSD optimisé pour Nginx, réduisant la latence des E/S pour accélérer l'accès aux fichiers de configuration et aux journaux.
Infrastructure de sécurité
Grâce à une protection DDoS de niveau entreprise, Serverion renforce la sécurité de Nginx. Cela garantit la disponibilité pendant les attaques et complète les fonctionnalités d'équilibrage de charge de Nginx.
| Type de ressource | Caractéristiques | Avantages pour Nginx |
|---|---|---|
| Processeur | Processeur Xeon à quatre cœurs | Gère efficacement les processus de travail |
| BÉLIER | Jusqu'à 16 Go | Améliore les performances de mise en cache |
| Espace de rangement | Basé sur SSD | Accélère l'accès aux fichiers |
| Bande passante | Haute capacité | Prend en charge un équilibrage de charge fiable |
Infrastructure évolutive
Les plans de Serverion sont conçus pour s'adapter à vos besoins croissants en matière de trafic. Cela garantit que votre configuration Nginx peut gérer une demande accrue sans perte de performances.
« Une surveillance régulière et une optimisation des performances sont essentielles lors de l'hébergement de Nginx. Le bon environnement d'hébergement doit fournir à la fois les ressources et les outils nécessaires pour maintenir des performances optimales du serveur. »
Assistance d'experts
L'équipe d'assistance 24h/24 et 7j/7 de Serverion comprend des spécialistes Nginx qui peuvent vous aider à modifier la configuration et à optimiser les performances en fonction de vos besoins.
Conclusion et conseils finaux
Récapitulatif des points clés
Pour tirer le meilleur parti de Nginx, vous devez vous concentrer sur une approche claire et étape par étape. Commencez par comprendre les limites matérielles et les modèles de trafic de votre serveur. À partir de là, affinez les paramètres tels que les processus de travail, la mise en cache et l'équilibrage de charge pour vous assurer que votre serveur fonctionne de manière fluide et efficace.
Étapes pour commencer
- Valider les configurations:Avant d'effectuer des modifications en direct, utilisez
nginx -tpour vérifier vos configurations pour les erreurs. - Optimisations de base:
- Correspondre
processus_de_travailaux cœurs du processeur de votre serveur (par exemple,processus_de_travailleur 4pour un serveur à 4 cœurs). - Activez la compression gzip pour réduire la taille des fichiers de 50 à 70%.
- Ajustez les tailles de tampon pour gérer les demandes plus efficacement.
- Correspondre
- Fonctionnalités avancées:
- Configurer la terminaison SSL pour sécuriser les connexions.
- Configurez la mise en cache de contenu avec des paramètres d’expiration appropriés.
- Utilisez un équilibrage de charge adapté à vos modèles de trafic.
- Installez des outils comme Prometheus et Grafana pour surveiller les performances.
Suivi des performances: Il est essentiel de surveiller les performances de votre serveur. Suivez les indicateurs tels que les taux de requêtes, les temps de réponse et l'utilisation des ressources pour détecter les problèmes avant qu'ils n'affectent les utilisateurs.
« Une surveillance régulière et une optimisation des performances sont essentielles lors de l'hébergement de Nginx. La bonne combinaison de paramètres de configuration et d'outils de surveillance garantit des performances optimales du serveur au fil du temps. »
FAQ
Voici les réponses à certaines questions courantes sur les configurations Nginx pour vous aider à résoudre les problèmes et à améliorer les performances.
Comment puis-je vérifier si Nginx met en cache ?
Pour vérifier si Nginx met en cache le contenu, inspectez les en-têtes de réponse HTTP. Recherchez :
- Cache X:Une valeur « HIT » signifie que le contenu est mis en cache.
- Statut du cache X: Indique l'état actuel de la mise en cache.
Vous pouvez utiliser cette commande pour afficher les en-têtes :
curl-I https://votresiteweb.com Note: Assurez-vous que ces en-têtes sont configurés dans votre configuration Nginx ; sinon, ils n'apparaîtront pas dans la réponse.
Quels sont les paramètres de mémoire tampon recommandés ?
Voici un exemple de configuration pour configurer efficacement les tampons :
taille_tampon_corps_client 10K; taille_tampon_en-tête_client 1K; taille_max_corps_client 8m; grands_tampons_en-tête_client 4 4k; Comment activer la prise en charge WebSocket ?
Pour activer la prise en charge de WebSocket, assurez-vous que votre proxy_pass La directive pointe vers le serveur backend WebSocket. Pour des instructions détaillées, reportez-vous à la section précédente sur la configuration WebSocket.
Comment puis-je configurer SSL en toute sécurité ?
Utilisez la configuration suivante pour configurer SSL en toute sécurité :
serveur { listen 443 ssl; nom_serveur example.com; certificat_ssl /chemin/vers/cert.crt; clé_certificat_ssl /chemin/vers/cert.key; protocoles_ssl TLSv1.2 TLSv1.3; chiffrements_ssl HIGH:!aNULL:!MD5; } Comment optimiser Nginx pour un trafic élevé ?
Pour les sites Web à fort trafic, concentrez-vous sur ces domaines clés :
- Correspondre
processus_de_travailau nombre de cœurs de processeur et à l'augmentationconnexions_travailleurspour gérer plus de connexions. - Configurez une mise en cache efficace pour réduire la charge du serveur.
- Ajustez les tailles de tampon pour traiter les demandes plus efficacement.
« Une surveillance régulière et une optimisation des performances sont essentielles lors de l'hébergement de Nginx. La bonne combinaison de paramètres de configuration et d'outils de surveillance garantit des performances optimales du serveur au fil du temps. »
Articles de blog associés
- Guide de localisation des centres de données : impact sur la vitesse du site Web
- Les 5 principales fonctionnalités d'hébergement DNS pour les sites Web d'entreprise
- FAQ sur la gestion des serveurs : réponses aux questions courantes
- Exploiter les services de mise en miroir pour améliorer la fiabilité et les performances du site Web