Comment configurer Nginx comme proxy inverse pour l'application Nodejs
- 4337
- 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.lanAccè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.
- « 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 »