Comment configurer Nginx comme proxy inverse pour l'application Nodejs

- 4397
- 639
- Jeanne Dupont
Nodejs est un cadre JavaScript Open Source, léger, évolutif et efficace construit sur le moteur JavaScript V8 de Chrome, et utilise un modèle d'E / S non bloquante axé sur les événements. Nodejs est maintenant partout et est devenu si populaire pour développer des logiciels à partir de sites Web, d'applications Web aux applications réseau et plus.
Nginx est un serveur HTTP open source, haute performance, un équilibreur de chargement et un logiciel proxy inversé. Il a un langage de configuration simple, ce qui facilite la configuration. Dans cet article, nous montrerons comment configurer Nginx en tant que proxy inverse pour les applications NodeJS.
Lire aussi: Le guide ultime pour sécuriser, durcir et améliorer les performances du serveur Web Nginx
Note: Si votre système s'exécute déjà avec Nodejs et NPM, Et demandez à votre application de fonctionner sur un certain port, allez directement à Étape 4.
Étape 1: Installation de Nodejs et NPM dans Linux
La dernière version de Nœud.js et NPM est disponible pour installer à partir du référentiel officiel de NODESource Enterprise Linux, Fedora, Debian et Ubuntu Binary Distribution, qui est maintenu par le site Web de NodeJS et vous devrez l'ajouter à votre système pour pouvoir installer les derniers packages NodeJS et NPM comme indiqué.
Sur Debian / Ubuntu
---------- Installer le nœud.JS V11.X ---------- $ curl -sl https: // deb.nœud.com / setup_11.X | sudo -e bash - $ sudo apt-get install -y nodejs ---------- Installer le nœud.JS V10.X ---------- $ curl -sl https: // deb.nœud.com / setup_10.X | sudo -e bash - $ sudo apt-get install -y nodejs
Sur Centos / Rhel et Fedora
---------- Installer le nœud.JS V11.X ---------- $ curl -sl https: // rpm.nœud.com / setup_11.X | frapper - ---------- Installer le nœud.JS V10.X ---------- $ curl -sl https: // rpm.nœud.com / setup_10.X | frapper -
Étape 2: Création d'une application NodeJS
À des fins de démonstration, nous créerons un exemple d'application appelée "Sysmon", qui fonctionnera sur le port 5000 comme montré.
$ sudo mkdir -p / var / www / html / sysmon $ sudo vim / var / www / html / sysmon / serveur.js
Copier et coller le code suivant dans le serveur.js fichier (remplacer 192.168.43.31 avec votre serveur IP).
const http = requis ('http'); const hostname = '192.168.43.31';; const port = 5000; const Server = http.createServer ((req, res) => res.StatusCode = 200; res.Setheader («Content-Type», «Text / Plain»); res.fin ('application sysmon est opérationnelle!\ n '); ); serveur.écouter (port, nom d'hôte, () => console.log ('Server en cours d'exécution sur http: // $ hostname: $ port /'); );
Enregistrer le fichier et quitter.
Démarrez maintenant votre application de nœud à l'aide de la commande suivante (appuyez sur Ctrl + x
pour le terminer).
$ sudo nœud / var / www / html / sysmon / serveur.nœud JS ou $ sudo / var / www / html / sysmon / serveur.JS & #Start It en arrière-plan pour libérer votre terminal
Ouvrez maintenant un navigateur et accédez à votre application sur l'URL http: // 198.168.43.31: 5000
.

Étape 3: Installez le proxy inversé Nginx dans Linux
Nous allons installer la dernière version de Nginx du référentiel officiel, comme indiqué ci-dessous.
Sur Debian / Ubuntu
Créer un fichier appelé / etc / apt / sources.liste.d / nginx.liste et ajoutez-y les lignes suivantes.
deb http: // nginx.org / packages / ubuntu / bionic nginx deb-src http: // nginx.org / packages / ubuntu / bionic nginx
Ensuite, ajoutez la clé de signature du référentiel, mettez à jour votre index du package système et installez le package Nginx comme suit.
$ wget --quiet http: // nginx.org / keys / nginx_signing.Key && sudo apt-key add nginx_signing.Key $ sudo apt mise à jour $ sudo apt install nginx
Sur Centos / Rhel et Fedora
Créer un fichier nommé / etc / yum.se soustraire.d / nginx.repo et collez l'une des configurations ci-dessous.
Centos
[nginx] name = nginx repo substanl = http: // nginx.org / packages / centos /$ libéré
/ $ Basearch / gpgCheck = 0 activé = 1
Rhel
[nginx] name = nginx repo substanl = http: // nginx.org / packages / rhel /$ libéré
/ $ Basearch / gpgCheck = 0 activé = 1
Note: En raison des différences entre la façon dont Centos et Rhel, il est nécessaire de remplacer $ libéré
soit 6 (pour 6.X) ou 7 (pour 7.X), selon la version de votre système d'exploitation.
Ensuite, ajoutez la touche de signature du référentiel et installez le package Nginx comme indiqué.
# wget --quiet http: // nginx.org / keys / nginx_signing.Key && rpm --import nginx_signing.clé # yum install nginx
Après l'installation avec succès Nginx, Démarrez-le, activez-le pour démarrer automatiquement au démarrage du système et vérifiez s'il est opérationnel.
---------- Sur Debian / Ubuntu ---------- $ sudo systemctl status nginx $ sudo systemctl activer nginx $ sudo systemctl status nginx ---------- Sur Centos / Rhel ---------- # statut systemctl nginx # systemctl activer nginx # statut systemctl nginx
Si vous exécutez un pare-feu système, vous devez ouvrir le port 80 (http), 443 (HTTPS) et 5000 (application Node), sur lequel le serveur Web écoute pour les demandes de connexion client.
---------- Sur Debian / Ubuntu ---------- $ sudo ufw permettre 80 / tcp $ sudo ufw permettre 443 / tcp $ sudo ufw permettre 5000 / tcp $ sudo ufw reload ---------- Sur Centos / Rhel ---------- # Firewall-CMD --permanent --add-port = 80 / TCP # Firewall-Cmd --permanent --Add-Port = 443 / TCP # Firewall-CMD --permanent --Add-Port = 5000 / TCP # Firewall. -CMD - Reload
Étape 4: Configurer Nginx comme proxy inverse pour l'application NodeJS
Créez maintenant un fichier de configuration de bloc de serveur pour votre application de nœud sous / etc / nginx / confre.d/ comme montré.
$ sudo vim / etc / nginx / confr.d / sysmon.confli
Copier et coller la configuration suivante (modifier 192.168.43.31 avec votre serveur IP et Tecmint.lan avec votre nom de domaine).
Server écouter 80; nom du serveur sysmon.Tecmint.lan; Emplacement / proxy_set_header x-Forwarded-for $ Remote_addr; proxy_set_header host $ http_host; proxy_pass http: // 192.168.43.31: 5000;
Enregistrer les modifications et quitter le fichier.
Enfin, redémarrez le service Nginx pour effectuer les changements récents.
$ sudo systemctl redémarrer nginx ou # systemctl redémarrer nginx
Étape 5: Accès à l'application NodeJS via le navigateur Web
Maintenant, vous devriez pouvoir accéder à votre application de nœud sans fournir le port sur lequel il écoute, dans l'URL: c'est un moyen très pratique pour les utilisateurs d'y accéder.
http: // sysmon.Tecmint.lan
Pour que votre nom de domaine de test fonctionne, vous devez configurer les DN locaux en utilisant le / etc / hôtes fichier, ouvrez-le et ajoutez la ligne ci-dessous (n'oubliez pas de changer 192.168.43.31 avec votre serveur IP et Tecmint.lan avec votre nom de doamin comme avant).
192.168.43.31 Sysmon.Tecmint.lan

C'est tout! Dans cet article, nous avons montré comment configurer Nginx comme proxy inverse pour les applications NodeJS. Utilisez le formulaire de rétroaction ci-dessous pour poser des questions ou partager vos réflexions sur cet article.
- « Comment démarrer en mode de sauvetage ou en mode d'urgence dans Ubuntu 20.04/18.04
- Comment installer PHP 8.0 sur Ubuntu 20.04/18.04 »