Comment déployer nginx nodejs

PHPz
Libérer: 2023-04-26 09:31:25
original
1667 Les gens l'ont consulté

Vue d'ensemble

Dans le développement d'applications Web modernes, Nginx et Node.js sont deux outils très importants, en tant que serveur Web hautes performances, est principalement utilisé pour gérer les requêtes HTTP et l'accès aux fichiers statiques, tandis que Node.js est largement utilisé. utilisé pour créer des applications Web hautes performances et des API côté serveur, et est privilégié pour son excellent modèle d'E/S asynchrone et non bloquant et son riche écosystème de modules tiers.

Dans cet article, nous présenterons comment déployer Nginx et Node.js sur un serveur Linux en même temps, et utiliser la fonction proxy inverse de Nginx pour améliorer les performances et la fiabilité de nos applications Web, et finalement obtenir un fonctionnement efficace. et un service Web stable.

Préparation

Afin de réaliser ce tutoriel, nous avons besoin d'un serveur exécutant le système d'exploitation Ubuntu 18.04 LTS. Nous devons également installer les dernières versions de Node.js et Nginx.

Installer Node.js

Tout d'abord, nous devons installer Node.js pour notre serveur. Nous utiliserons nvm (Node Version Manager) pour gérer nos versions de Node.js car cela facilite l'installation et la commutation entre les différentes versions de Node.js.

  1. Installer nvm

Tout d'abord, nous devons télécharger le script d'installation de nvm à l'aide de la commande curl :

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.36.0/install.sh | bash
Copier après la connexion

Ensuite, nous exécutons la commande suivante pour appliquer les modifications de configuration :

source ~/.bashrc
Copier après la connexion

Maintenant, nvm est installé sur notre serveur .

  1. Installer Node.js

Nous pouvons vérifier les versions de Node.js disponibles en utilisant la commande suivante :

nvm ls-remote
Copier après la connexion

Ensuite, nous sélectionnons une version de Node.js que nous voulons installer et l'installons à l'aide de la commande suivante :

nvm install 14.16.1  // 这里我们选择的是 v14.16.1 版本
Copier après la connexion

Maintenant, nous avons installé avec succès Node.js.

Installer Nginx

Ensuite, nous devons installer le serveur Nginx pour gérer les requêtes HTTP et lire les fichiers statiques. Sur Ubuntu 18.04, nous pouvons utiliser la commande suivante pour installer Nginx :

sudo apt-get update
sudo apt-get install nginx
Copier après la connexion

Une fois l'installation terminée, nous pouvons utiliser la commande suivante pour démarrer le service Nginx :

sudo systemctl start nginx
Copier après la connexion

Ensuite, nous pouvons utiliser la commande suivante pour vérifier le Nginx état du service :

sudo systemctl status nginx
Copier après la connexion

Si le service Nginx a démarré avec succès, nous devrions pouvoir accéder à l'adresse IP publique de notre serveur depuis le navigateur et voir la page d'accueil par défaut de Nginx.

Configurer le proxy inverse Nginx

Maintenant, nous avons installé avec succès Nginx et Node.js. Ensuite, nous utiliserons la fonctionnalité de proxy inverse de Nginx pour transférer les requêtes HTTP externes vers un numéro de port spécifié sur le serveur Node.js.

  1. Modifiez le fichier de configuration Nginx

Modifiez le fichier de configuration Nginx /etc/nginx/nginx.conf, recherchez le nœud du serveur dans le segment http et ajoutez-y le code suivant :

upstream nodejs_backend {
    server    127.0.0.1:3000;  # 这里的端口号需要和我们 Node.js 端口号一致
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    
    location / {
        proxy_pass http://nodejs_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Copier après la connexion

Ici, nous utilisons le module en amont de Nginx An Un serveur en amont nommé nodejs_backend est défini, qui pointe vers 127.0.0.1:3000, qui est le numéro de port du serveur Node.js que nous exécuterons plus tard.

Ensuite, nous définissons un hôte virtuel nommé default_server, qui écoute sur le port 80 et transmet les requêtes HTTP à nodejs_backend. Trois des paramètres proxy_set_header sont utilisés pour définir des informations supplémentaires pour le transfert des demandes.

  1. Redémarrez le service Nginx

Après avoir terminé les étapes ci-dessus, nous devons redémarrer le service Nginx pour le rendre efficace :

sudo systemctl restart nginx
Copier après la connexion
  1. Exécutez le service Node.js

Maintenant, nous avons configuré avec succès le proxy inverse fonction de Nginx et préparez-vous à démarrer le service sur le serveur Node.js pour recevoir les requêtes de Nginx.

Créez un fichier appelé app.js et démarrez un simple serveur http en utilisant le code suivant :

const http = require('http');
const server = http.createServer((req, res) => {
  res.writeHead(200);
  res.end('Hello, World!');
});
server.listen(3000, () => {
  console.log('Server running on http://127.0.0.1:3000/');
});
Copier après la connexion

Maintenant, nous démarrons notre application Node.js en utilisant la commande suivante :

node app.js
Copier après la connexion

Après une exécution réussie, nous pouvons accéder au public de notre serveur. Adresse IP d'un navigateur et voyez que notre application Node.js génère un message "Hello, World!".

Résumé

Félicitations, nous avons terminé le tutoriel de déploiement simultané de Nginx et Node.js sur un serveur Linux. En utilisant la fonctionnalité de proxy inverse de Nginx pour transférer les requêtes HTTP, nous pouvons écrire des applications Web et des API dans Node.js, et utiliser Nginx pour gérer les fichiers statiques et l'équilibrage de charge, améliorant ainsi les performances et la fiabilité des applications Web.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal