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.
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
Ensuite, nous exécutons la commande suivante pour appliquer les modifications de configuration :
source ~/.bashrc
Maintenant, nvm est installé sur notre serveur .
Nous pouvons vérifier les versions de Node.js disponibles en utilisant la commande suivante :
nvm ls-remote
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 版本
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
Une fois l'installation terminée, nous pouvons utiliser la commande suivante pour démarrer le service Nginx :
sudo systemctl start nginx
Ensuite, nous pouvons utiliser la commande suivante pour vérifier le Nginx état du service :
sudo systemctl status nginx
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.
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; } }
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.
Après avoir terminé les étapes ci-dessus, nous devons redémarrer le service Nginx pour le rendre efficace :
sudo systemctl restart nginx
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/'); });
Maintenant, nous démarrons notre application Node.js en utilisant la commande suivante :
node app.js
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!