Maison >Opération et maintenance >Nginx >Comment surveiller les performances Nginx et l'utilisation des ressources?
La surveillance des performances et de l'utilisation des ressources de Nginx est essentielle pour maintenir la santé et l'efficacité de votre serveur Web. Voici comment vous pouvez réaliser une surveillance complète:
Page d'état Nginx:
Nginx fournit une page d'état intégrée qui peut vous donner un aperçu des connexions actuelles, des connexions actives et des demandes par seconde. Pour activer cela, vous devez configurer le fichier nginx.conf
pour inclure le ngx_http_stub_status_module
. Voici comment vous le faites:
<code class="nginx">location /nginx_status { stub_status; access_log off; allow 127.0.0.1; # Only allow access from localhost deny all; # Deny access from anywhere else }</code>
http://yourserver/nginx_status
.Surveillance au niveau du système:
top
, htop
ou mpstat
pour vérifier l'utilisation globale du processeur et de la mémoire. Ces outils fournissent des informations en temps réel sur la façon dont Nginx utilise les ressources système.iostat
pour surveiller les opérations de lecture / écriture, ce qui peut avoir un impact sur les performances de Nginx, surtout si votre serveur gère beaucoup de contenu statique.Analyse du journal:
goaccess
peuvent analyser ces journaux et présenter des statistiques telles que le nombre de demandes, la bande passante et les URL visitées les plus visitées.Outils de surveillance des tiers:
Pour suivre les temps de charge et de réponse du serveur Nginx, plusieurs outils peuvent être utilisés, chacun offrant différentes capacités et niveaux de détail:
Module d'état Nginx:
Prométhée et Grafana:
Nouvelle relique:
Datadog:
Géraccées:
La configuration de la surveillance en temps réel pour l'utilisation du processeur et de la mémoire NGINX peut être effectuée via les étapes suivantes:
Installer des agents de surveillance:
Configurer Prométhée:
Configurez Prometheus pour gratter les métriques de Node Exporter. Vous devrez créer un fichier de configuration prometheus.yml
et inclure le travail nécessaire pour se retirer de Node Exporter:
<code class="yaml">scrape_configs: - job_name: 'nginx' static_configs: - targets: ['localhost:9100'] # Assuming Node Exporter is running on port 9100</code>
Configurez Grafana:
Alertes en temps réel:
Sur la base des données de surveillance, voici quelques meilleures pratiques pour optimiser les performances de Nginx:
Tune des processus des travailleurs:
Ajustez le nombre de processus de travail en fonction des cœurs CPU de votre serveur. Vous pouvez le définir dans nginx.conf
:
<code class="nginx">worker_processes auto;</code>
Optimiser la gestion des connexions:
Surveillez le nombre de connexions actives et ajustez worker_connections
en conséquence. Cela peut aider à gérer efficacement les connexions plus concurrentes:
<code class="nginx">events { worker_connections 1024; }</code>
Activer la mise en cache:
Configurer la mise en cache dans nginx.conf
:
<code class="nginx">proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;</code>
Compression GZIP:
Activer la compression GZIP pour réduire la quantité de données transférées sur le réseau. Surveillez la bande passante et les temps de réponse pour voir les avantages:
<code class="nginx">gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml rss text/javascript;</code>
Utiliser l'équilibrage de la charge:
Surveiller et ajuster les tailles de tampon:
En fonction de vos données de surveillance, ajustez les tailles de tampon comme proxy_buffer_size
et proxy_buffers
pour optimiser les performances pour les transferts de fichiers importants ou les sites de trafic élevé:
<code class="nginx">proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k;</code>
Gardez Nginx à jour:
En suivant ces meilleures pratiques et en surveillant en continu votre serveur Nginx, vous pouvez optimiser ses performances et vous assurer qu'il s'exécute efficacement dans les charges variables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!