Maison Opération et maintenance Nginx NGINX et PM2 : Améliorez les performances et la stabilité des serveurs VPS

NGINX et PM2 : Améliorez les performances et la stabilité des serveurs VPS

Sep 28, 2023 pm 04:00 PM
nginx performance pm

NGINX和PM2: 提升VPS服务器的性能和稳定性

NGINX et PM2 : Pour améliorer les performances et la stabilité du serveur VPS, des exemples de code spécifiques sont nécessaires

Introduction :
À l'ère d'Internet moderne, les performances et la stabilité du serveur sont cruciales pour le fonctionnement normal du site Web. Lors du traitement d'un nombre élevé de requêtes simultanées, les performances et la stabilité du serveur affectent directement l'expérience utilisateur. Afin d'améliorer les performances et la stabilité du serveur, NGINX et PM2 sont deux outils très utiles. NGINX est un serveur Web et un serveur proxy inverse hautes performances, et PM2 est un outil de gestion de processus. Cet article expliquera comment utiliser NGINX et PM2 pour améliorer les performances et la stabilité du serveur VPS, et donnera quelques exemples de code spécifiques.

1. Installer et configurer NGINX

  1. Installer NGINX
    Installer NGINX sur un serveur VPS est très simple. Commencez par mettre à jour la liste des packages du serveur, puis utilisez la commande apt-get pour installer NGINX.
sudo apt-get update
sudo apt-get install nginx
  1. Configuration de NGINX
    Une fois l'installation terminée, vous devez effectuer une configuration de base sur NGINX. Cela comprend principalement la modification du fichier de configuration par défaut de NGINX et la création d'un fichier de configuration d'hôte virtuel.
  • Modifier le fichier de configuration par défaut
    Le fichier de configuration par défaut se trouve dans /etc/nginx/nginx.conf. Peut être ouvert et modifié à l’aide de n’importe quel éditeur de texte. En fonction de la configuration matérielle du serveur, certains paramètres, tels que Worker_processes et Worker_connections, peuvent être modifiés pour optimiser les performances de NGINX. /etc/nginx/nginx.conf。可以使用任何文本编辑器打开并修改。根据服务器硬件的配置,可以修改一些参数,如worker_processes和worker_connections等,以优化NGINX性能。
  • 创建虚拟主机配置文件
    虚拟主机配置文件位于/etc/nginx/sites-available/
  • Créer un fichier de configuration d'hôte virtuel
Le fichier de configuration d'hôte virtuel se trouve dans le répertoire /etc/nginx/sites-available/. Un nouveau fichier de configuration peut être créé pour créer un hôte virtuel indépendant pour chaque site Web. Voici un exemple de fichier de configuration d'hôte virtuel :

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;
    }
}
    L'exemple ci-dessus configure un serveur proxy inverse de base pour transférer les requêtes de example.com vers le port local 3000.

  1. Démarrez NGINX et vérifiez la configuration
Après avoir terminé la configuration, vous devez démarrer NGINX et utiliser un navigateur pour vérifier si la configuration prend effet.

sudo service nginx start

Ouvrez le navigateur et accédez au nom de domaine ou à l'adresse IP configurés. Si tout est normal, vous verrez la page d'accueil par défaut de NGINX.

    2. Installez et configurez PM2

  1. Installation de PM2
Il est très simple d'installer PM2 globalement à l'aide de npm.
  1. sudo npm install -g pm2

  2. Lancez et gérez des applications
Il est très pratique de lancer et de gérer des applications avec PM2. Dans le répertoire racine du projet, utilisez la commande suivante pour démarrer l'application :

pm2 start app.js
    Vous pouvez également utiliser la commande suivante pour effectuer d'autres opérations sur l'application :
Afficher la liste des applications
  • pm2 list
Arrêtez le application
  • pm2 stop app
Redémarrez l'application

pm2 restart app
    3. Utilisation combinée de NGINX et PM2

  1. Configurer le proxy inverse NGINX
Dans le fichier de configuration de l'hôte virtuel de NGINX, transférez la requête HTTP à l'application exécutée sur PM2.
  1. 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;
        }
    }

  2. Utilisez PM2 pour gérer les applications
Dans le répertoire racine du projet, démarrez l'application à l'aide de PM2.

pm2 start app.js
    Ce qui précède démarrera une application Node.js en écoute sur le port 3000.

  1. Test et vérification
Avec la configuration et le démarrage ci-dessus, les requêtes HTTP reçues par NGINX seront transmises à l'application exécutée sur PM2. Ouvrez le navigateur et visitez le nom de domaine ou l'adresse IP configurée. Si tout est normal, vous verrez la page de l'application.


Conclusion :

En combinant NGINX et PM2, nous pouvons améliorer les performances et la stabilité du serveur VPS. L'utilisation de NGINX comme serveur proxy inverse peut améliorer les capacités de traitement des requêtes simultanées, et l'utilisation de PM2 peut facilement gérer le démarrage et la surveillance des applications. J'espère que les exemples de code de cet article seront utiles aux lecteurs qui utilisent NGINX et PM2 pour améliorer les performances et la stabilité du serveur.

🎜Nombre total de mots : 634 mots🎜

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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser PHP pour développer une plate-forme communautaire Q&A explication détaillée du modèle de monétisation communautaire interactive PHP Comment utiliser PHP pour développer une plate-forme communautaire Q&A explication détaillée du modèle de monétisation communautaire interactive PHP Jul 23, 2025 pm 07:21 PM

1. Le premier choix pour la combinaison Laravel Mysql Vue / React dans la communauté de questions et réponses de développement PHP est le premier choix pour la combinaison Laravel Mysql Vue / React, en raison de sa maturité dans l'écosystème et de l'efficacité de développement élevée; 2. Les performances élevées nécessitent une dépendance à la cache (redis), une optimisation de la base de données, des files d'attente CDN et asynchrones; 3. La sécurité doit être effectuée avec le filtrage d'entrée, la protection CSRF, les HTTP, le cryptage de mot de passe et le contrôle d'autorisation; 4. Publicité facultative, abonnement aux membres, récompenses, commissions, paiement des connaissances et autres modèles, le noyau est de faire correspondre le ton communautaire et les besoins des utilisateurs.

Qu'est-ce qui provoque une erreur 'trop ​​de fichiers ouverts' dans Nginx? Qu'est-ce qui provoque une erreur 'trop ​​de fichiers ouverts' dans Nginx? Jul 05, 2025 am 12:14 AM

Lorsque Nginx connaît une erreur "ToomyOpenFiles", c'est généralement parce que le système ou le processus a atteint la limite du descripteur de fichier. Les solutions incluent: 1. Augmenter les limites douces et dures du système Linux, définir les paramètres pertinents de Nginx ou exécuter les utilisateurs dans /etc/security/limits.conf; 2. Ajustez la valeur Worker_Connections de Nginx pour s'adapter au trafic attendu et assurer la configuration surchargée; 3. Augmentez la limite supérieure des descripteurs de fichiers au niveau du système fs.file-max, edit /etc/sysctl.conf et appliquez des modifications; 4. Optimiser l'utilisation du journal et des ressources et réduisez l'utilisation de la poignée des fichiers inutile, comme l'utilisation d'Open_L

Comment créer un environnement PHP Nginx avec MacOS pour configurer la combinaison des services Nginx et PHP Comment créer un environnement PHP Nginx avec MacOS pour configurer la combinaison des services Nginx et PHP Jul 25, 2025 pm 08:24 PM

Le rôle principal de Homebrew dans la construction de l'environnement Mac est de simplifier l'installation et la gestion des logiciels. 1. Homebrew gère automatiquement les dépendances et encapsule les processus de compilation et d'installation complexes en commandes simples; 2. Fournit un écosystème de package logiciel unifié pour assurer la normalisation de l'emplacement et de la configuration de l'installation logicielle; 3. Intègre les fonctions de gestion des services et peut facilement démarrer et arrêter les services via BrewServices; 4. Mise à niveau et maintenance des logiciels pratiques et améliore la sécurité et les fonctionnalités du système.

Comment activer la prise en charge HTTP / 2 ou HTTP / 3 dans Nginx? Comment activer la prise en charge HTTP / 2 ou HTTP / 3 dans Nginx? Jul 02, 2025 am 12:36 AM

Pour activer la prise en charge HTTP / 2 ou HTTP / 3 de Nginx, les conditions préalables doivent être respectées et configurées correctement; HTTP / 2 nécessite Nginx1.9.5, OpenSSL1.0.2 et l'environnement HTTPS; Ajouter le module --avec-http_v2_module lors de la configuration, modifiez l'instruction d'écoute à écouter443ssslhttp2; et surcharger le service; HTTP / 3 est basé sur la quic, et des modules tiers tels que Nginx-Quic sont nécessaires pour introduire des branches BoringSSL ou OpenSSLQUIC pendant la compilation et configurer les ports d'écoute UDP; Les problèmes courants pendant le déploiement incluent l'ALPN non activé, le certificat incompatible, les restrictions de pare-feu et les erreurs de compilation, il est recommandé d'utiliser la priorité

Java Virtual Threads Performance Benchmarking Java Virtual Threads Performance Benchmarking Jul 21, 2025 am 03:17 AM

Les fils virtuels présentent des avantages de performances significatifs dans les scénarios très concurrencés et IO, mais l'attention doit être accordée aux méthodes de test et aux scénarios applicables. 1. Les tests corrects devraient simuler des affaires réelles, en particulier les scénarios de blocage IO, et utiliser des outils tels que JMH ou Gatling pour comparer les threads de plate-forme; 2. L'écart de débit est évident, et il peut être plusieurs fois à dix fois supérieur à 100 000 demandes simultanées, car elle est plus légère et efficace dans la planification; 3. Pendant le test, il est nécessaire d'éviter de poursuivre aveuglément des nombres de concurrence élevés, de s'adapter aux modèles IO non bloquants et de prêter attention aux indicateurs de surveillance tels que la latence et le GC; 4. Dans les applications réelles, elle convient au backend Web, au traitement des tâches asynchrones et à un grand nombre de scénarios IO simultanés, tandis que les tâches à forte intensité de processeur sont toujours adaptées aux threads de plate-forme ou à Forkjoinpool.

Que signifie @ dans un bloc de localisation (emplacements nommés)? Que signifie @ dans un bloc de localisation (emplacements nommés)? Jul 09, 2025 am 01:49 AM

Dans la configuration de Nginx, les symboles @ dans le bloc d'emplacement sont utilisés pour définir les emplacements nommés. Ceux-ci sont des points de terminaison utilisés en interne et ne peuvent pas être appariés directement par la demande du client. Ils sont généralement appelés via les directives error_page, try_files ou réécrivent. 1. L'emplacement de dénomination commence par @. Par exemple, Emplacement @ NotFound ne répondra pas aux demandes directes, mais déclenchera à partir d'autres pièces de configuration; 2. Il est souvent utilisé pour la gestion des erreurs personnalisée, le routage interne et le support d'agent backend; 3. Par exemple, combiné avec Try_Files, transférant à @backend lorsque les fichiers statiques n'existent pas; 4. Les notes incluent: non directement accessible, éviter les conflits de nommage et utiliser des noms descriptifs. Les emplacements nommés peuvent inclure

Benchmarking and Profil C # Code Performance Benchmarking and Profil C # Code Performance Jul 03, 2025 am 12:25 AM

C # L'optimisation des performances du code nécessite des outils plutôt que de l'intuition. Benchmarkdotnet est le premier choix pour l'analyse comparative. 1. Gérer automatiquement l'échauffement du JIT et les effets GC en comparant scientifiquement l'efficacité d'exécution de différentes méthodes; 2. Profilage à l'aide d'outils tels que VisualStudio, DotTrace ou PerfView pour trouver les fonctions de «point chaud» vraiment qui prennent du temps; 3. Faites attention à l'allocation de la mémoire, combinez [MemoryDiagnoser], Diagnosticools et PerfView pour analyser la pression GC, réduire la création d'objets dans les chemins à haute fréquence et donner la priorité à l'utilisation de structures ou à la technologie de mise en commun pour réduire la charge GC.

Comment utiliser Kubernetes pour maintenir l'environnement PHP cohérent de production et de normes de configuration de conteneur local Comment utiliser Kubernetes pour maintenir l'environnement PHP cohérent de production et de normes de configuration de conteneur local Jul 25, 2025 pm 06:21 PM

Pour résoudre le problème de l'incohérence entre l'environnement PHP et la production, le noyau consiste à utiliser les capacités de conteneurisation et d'orchestration de Kubernetes pour atteindre la cohérence environnementale. Les étapes spécifiques sont les suivantes: 1. Créez une image Docker unifiée, y compris toutes les versions PHP, extensions, dépendances et configurations de serveurs Web pour s'assurer que la même image est utilisée dans le développement et la production; 2. Utilisez la configmap de Kubernetes et le secret pour gérer les configurations non sensibles et sensibles, et obtenez une commutation flexible de différentes configurations d'environnement via des supports de volume ou une injection variable d'environnement; 3. Assurer la cohérence du comportement de l'application via des fichiers unifiés de définition de déploiement de Kubernetes (tels que le déploiement et le service) et inclure dans le contrôle de version; 4

See all articles