Maison  >  Article  >  Opération et maintenance  >  Comment optimiser le temps de réponse et le débit du serveur VPS à l'aide de NGINX et PM2

Comment optimiser le temps de réponse et le débit du serveur VPS à l'aide de NGINX et PM2

PHPz
PHPzoriginal
2023-09-27 08:45:151232parcourir

Comment optimiser le temps de réponse et le débit du serveur VPS à laide de NGINX et PM2

Vous trouverez ci-dessous un article expliquant comment utiliser NGINX et PM2 pour optimiser le temps de réponse et le débit de votre serveur VPS :

Titre : Comment utiliser NGINX et PM2 pour optimiser le temps de réponse et le débit de votre serveur VPS

Vue d'ensemble :
Dans les scénarios d'applications Internet modernes, comment améliorer le temps de réponse et le débit du serveur est un défi auquel chaque développeur doit faire face. NGINX et PM2 sont deux outils puissants qui peuvent nous aider à optimiser facilement les performances du serveur. Cet article présentera en détail comment utiliser NGINX et PM2 pour optimiser le temps de réponse et le débit du serveur VPS, et donnera des exemples de code spécifiques.

1. Installation et configuration de NGINX :

  1. Installation de NGINX :
    L'installation de NGINX sur un serveur VPS est très simple et peut être installée à l'aide d'outils de gestion de packages (tels que apt, yum, etc.). Veuillez vous référer à la documentation officielle de NGINX pour les étapes d'installation spécifiques.
  2. Configuration de NGINX :
    Le fichier de configuration de NGINX se trouve dans /etc/nginx/nginx.conf Dans ce fichier, les performances du serveur peuvent être ajustées. Voici quelques éléments de configuration couramment utilisés :

    • worker_processes : Spécifiez le nombre de processus de travail utilisés par NGINX Il est généralement recommandé de le définir sur le nombre de cœurs de processeur du serveur.
    • worker_connections : Spécifie le nombre de connexions simultanées que chaque processus de travail peut gérer. Cette valeur peut être ajustée en fonction de la configuration du serveur. Il est généralement recommandé de la définir sur le nombre maximum de connexions pris en charge.
    • sendfile : l'activation de cette option peut améliorer l'efficacité du transfert de fichiers.
    • keepalive_timeout : spécifiez un délai d'attente pour une longue connexion, ce qui peut réduire le coût d'établissement et de fermeture des connexions entre le client et le serveur.

    L'exemple de fichier de configuration est le suivant :

     worker_processes  4;
     
     events {
         worker_connections  1024;
     }
     
     http {
         ...
         sendfile            on;
         keepalive_timeout   65;
         ...
     }

2. Installation et configuration de PM2 :

  1. Installation de PM2 :
    PM2 est un outil de gestion des applications Node.js et peut nous aider à réaliser l'équilibrage de charge. et fonctions de redémarrage automatique. Utilisez la commande suivante pour installer PM2 :

     npm install pm2 -g
  2. Configurer PM2 :
    Le fichier de configuration de PM2 est economy.config.js Dans ce fichier, vous pouvez configurer les paramètres de l'application Node.js qui doit être démarrée. Voici un exemple de configuration simple :

     module.exports = {
       apps : [{
         name: 'app',
         script: 'app.js',
         instances: 'max',
         exec_mode: 'cluster',
         autorestart: true,
         watch: false,
         max_memory_restart: '1G',
         env: {
           NODE_ENV: 'production'
         }
       }]
     };
    • name : nom de l'application
    • script : chemin du fichier d'entrée de l'application
    • instances : le nombre d'instances démarrées, défini au maximum pour allouer automatiquement en fonction du nombre de cœurs CPU de la machine
    • exec_mode : mode d'exécution, défini sur cluster pour obtenir l'équilibrage de charge
    • autorestart : défini sur true pour activer le redémarrage automatique
    • watch : défini sur false pour désactiver la surveillance des modifications de fichiers
    • max_memory_restart : définit l'utilisation maximale de la mémoire de chaque instance, dépassant cette valeur L'instance sera automatiquement redémarrée lorsque la valeur est atteinte
    • env : Définir la variable d'environnement de l'application Node.js

3. Utilisation combinée de NGINX et PM2 :

  1. Configurer Proxy inverse NGINX :
    Configurez NGINX en tant que proxy inverse, transférez la requête vers l'application Node.js démarrée par PM2. Voici un exemple de configuration :

     server {
         listen   80;
         server_name  example.com;
     
         location / {
             proxy_pass http://localhost:3000;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection 'upgrade';
             proxy_set_header Host $host;
             proxy_cache_bypass $http_upgrade;
         }
     }
    • listen : spécifiez le numéro de port que le serveur écoute
    • server_name : spécifiez le nom de domaine lié ou l'adresse IP
    • location/ : spécifiez les règles de correspondance des requêtes et la configuration du proxy
  2. Démarrez les applications Node.js :
    Lancez les applications Node.js à l'aide de PM2. Voici un exemple de commande de démarrage :

     pm2 start ecosystem.config.js

    Une fois la commande exécutée, PM2 terminera automatiquement le démarrage de l'application, effectuera l'équilibrage de charge et le redémarrage automatique en fonction des paramètres du fichier de configuration.

Conclusion :
Cet article présente comment utiliser NGINX et PM2 pour optimiser le temps de réponse et le débit du serveur VPS. En ajustant correctement les paramètres de configuration de NGINX et en utilisant PM2 pour l'équilibrage de charge et le redémarrage automatique, les performances et la stabilité du serveur peuvent être considérablement améliorées. J'espère que cet article pourra être utile aux développeurs qui rencontrent des difficultés dans l'optimisation du serveur.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn