Comment configurer Nginx comme proxy inverse pour l'application Nodejs

Comment configurer Nginx comme proxy inverse pour l'application Nodejs

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.

Accédez à l'application de nœud du navigateur

É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 
Accès à l'application Node via Nginx Inverse Proxy

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.