So konfigurieren Sie Nginx als Reverse -Proxy für die NodeJS -App

So konfigurieren Sie Nginx als Reverse -Proxy für die NodeJS -App

Nodejs ist ein kostenloses Open Source, ein leichtes, skalierbares und effizientes JavaScript-Framework, das auf der V8 JavaScript-Engine von Chrome basiert, und verwendet ein ereignisorientiertes, nicht blockierendes E/A-Modell. NodeJS ist jetzt überall und ist so beliebt für die Entwicklung von Software von Websites, Web -Apps zu Netzwerk -Apps und mehr.

Nginx ist eine Open Source-, Hochleistungs-HTTP-Server, Lade-Balancer- und Reverse-Proxy-Software. Es hat eine einfache Konfigurationssprache, die es einfach zu konfigurieren macht. In diesem Artikel zeigen wir, wie Nginx als Reverse -Proxy für NodeJS -Anwendungen konfiguriert werden kann.

Lesen Sie auch: Der ultimative Leitfaden zur Sicherung, Härte und Verbesserung der Leistung des NGINX -Webservers

Notiz: Wenn Ihr System bereits ausgeführt wird mit Nodejs Und NPM, Und lassen Sie Ihre App auf einem bestimmten Port laufen, direkt zu Schritt 4.

Schritt 1: Installieren von NodeJs und NPM unter Linux

Die neueste Version von Knoten.JS Und NPM kann über das offizielle Nodesource Enterprise Linux-, Fedora-, Debian- und Ubuntu -Binärverteilungs -Repository installiert werden, das von der NodeJS -Website verwaltet wird.

Auf Debian/Ubuntu

---------- Knoten installieren.JS V11.X ---------- $ curl -l https: // deb.nodesource.com/setup_11.x | sudo -e bash -$ sudo apt -Get -y nodejs installieren ---------- Knoten installieren.JS V10.X ---------- $ curl -l https: // deb.nodesource.com/setup_10.x | sudo -e bash -$ sudo apt -Get -y nodejs installieren 

Auf Centos/Rhel und Fedora

---------- Knoten installieren.JS V11.X ---------- $ curl -l https: // rpm.nodesource.com/setup_11.x | verprügeln - ---------- Knoten installieren.JS V10.X ---------- $ curl -l https: // rpm.nodesource.com/setup_10.x | verprügeln - 

Schritt 2: Erstellen einer NodeJS -Anwendung

Zu dem Demonstrationszweck werden wir eine Beispielanwendung erstellen, die genannt wird "Sysmon", die am Port ausgeführt werden 5000 wie gezeigt.

$ sudo mkdir -p/var/www/html/sysmon $ sudo vim/var/www/html/sysmon/server.JS 

Kopieren Sie den folgenden Code in die Server.JS Datei (ersetzen 192.168.43.31 mit Ihrem Server IP).

const http = required ('http'); const hostname = '192.168.43.31'; const port = 5000; const server = http.createServer ((req, res) => res.Statuscode = 200; res.Setheader ('Inhaltstyp', 'Text/Plain'); res.Ende ('Sysmon App ist in Betrieb!\N'); ); Server.Hören Sie (Port, Hostname, () => Konsole.log ('Server, der unter http: // $ hostname: $ port/') ausgeführt wird; ); 

Speichern Sie die Datei und beenden Sie.

Starten Sie nun Ihre Knotenanwendung mit dem folgenden Befehl (Drücken Sie drücken Strg+x es zu beenden)).

$ sudo node/var/www/html/sysmon/server.JS oder $ sudo node/var/www/html/sysmon/server.JS & #Start es im Hintergrund, um Ihr Terminal freizugeben 

Öffnen Sie nun einen Browser und greifen Sie auf Ihre Anwendung bei der URL zu http: // 198.168.43.31: 5000.

Zugriff auf die Knoten -App aus dem Browser

Schritt 3: Installieren Sie Nginx Reverse Proxy unter Linux

Wir werden die neueste Version von installieren Nginx Aus dem offiziellen Repository, wie unten gezeigt.

Auf Debian/Ubuntu

Erstellen Sie eine Datei aufgerufen /etc/Apt/Quellen.Liste.d/nginx.Liste und fügen Sie die folgenden Zeilen hinzu.

Deb http: // nginx.org/pakete/ubuntu/bionic nginx deb-src http: // nginx.org/pakete/ubuntu/bionic nginx 

Fügen Sie als Nächst.

$ wget -quiet http: // nginx.org/keys/nginx_signing.Key && sudo apt-key nginx_signing hinzufügen.Key $ sudo APT Update $ sudo apt install nginx 

Auf Centos/Rhel und Fedora

Erstellen Sie eine Datei mit dem Namen /etc/yum.Repos.d/nginx.Repo und fügen Sie eine der folgenden Konfigurationen ein.

Centos
[nginx] name = nginx repo baseUrl = http: // nginx.org/pakete/centos/$ Releasever/ $ basearch/ gpgcheck = 0 aktiviert = 1
Rhel
[nginx] name = nginx repo baseUrl = http: // nginx.org/pakete/rhel/$ Releasever/ $ basearch/ gpgcheck = 0 aktiviert = 1

Notiz: Aufgrund der Unterschiede zwischen der Art und Weise, wie CentOS und Rhel ersetzen müssen $ Releasever mit beiden 6 (für 6.X) oder 7 (für 7.X)) abhängig von Ihrer Betriebssystemversion.

Fügen Sie als Nächst.

# WGet -Quiet http: // nginx.org/keys/nginx_signing.Schlüssel && RPM -Import nginx_signing.Schlüssel # yum install nginx 

Nach erfolgreicher Installation Nginx, Starten Sie es, befähigen Sie es, beim Systemstart automatisch zu starten, und prüfen Sie, ob es in Betrieb ist.

---------- Auf Debian/Ubuntu ---------- $ sudo systemctl Status nginx $ sudo systemctl aktivieren nginx $ sudo systemctl status nginx ---------- Auf Centos/Rhel ---------- # Systemctl Status Nginx # SystemCTL aktivieren Nginx # SystemCTL Status nginx 

Wenn Sie eine Systemfeuerwall ausführen, müssen Sie den Port öffnen 80 (HTTP), 443 (https) Und 5000 (Knoten -App), auf den der Webserver für Client -Verbindungsanforderungen hört.

---------- Auf Debian/Ubuntu ---------- $ sudo ufw erlauben 80/tcp $ sudo ufw erlauben 443/tcp $ sudo ufw zulassen 5000/tcp $ sudo ufw reload ---------- Auf 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 

Schritt 4: Konfigurieren Sie Nginx als Reverse -Proxy für die NodeJS -Anwendung

Erstellen Sie nun eine Server -Block -Konfigurationsdatei für Ihre Knoten -App unter /etc/nginx/conf.D/ wie gezeigt.

$ sudo vim/etc/nginx/conf.d/sysmon.Conf 

Kopieren und fügen Sie die folgende Konfiguration ein (Änderung 192.168.43.31 mit Ihrem Server IP und Tecmint.Lan mit Ihrem Domain -Namen).

Server Listen 80; Servername Sysmon.Tecmint.Lan; location / proxy_set_header x-forwarded-for $ remote_addr; proxy_set_header host $ http_host; Proxy_Pass http: // 192.168.43.31: 5000;  

Speichern Sie die Änderungen und beenden Sie die Datei.

Starten Sie schließlich den Nginx -Dienst neu, um die jüngsten Änderungen zu bewirken.

$ sudo systemctl neu starten nginx oder # systemctl neu starten nginx neu 

Schritt 5: Zugriff auf die NodeJS -Anwendung über Webbrowser

Jetzt sollten Sie in der Lage sein, auf Ihre Knoten -App zugreifen zu können, ohne den Port anzugeben, den er anhört, in der URL: Dies ist eine viel bequeme Möglichkeit für Benutzer, darauf zugreifen zu können.

http: // sysmon.Tecmint.Lan 

Damit Ihr Testdomainnamen funktioniert, müssen Sie lokale DNs mit dem einrichten /etc/hosts Datei, öffnen Sie es und fügen Sie die unten darunter 192.168.43.31 mit Ihrem Server IP und Tecmint.Lan mit Ihrem Doamin -Namen wie zuvor).

192.168.43.31 Sysmon.Tecmint.Lan 
Zugreifen

Das ist alles! In diesem Artikel haben wir gezeigt, wie Nginx als Reverse Proxy für NodeJS -Anwendungen konfiguriert werden kann. Verwenden Sie das Feedback -Formular unten, um Fragen zu stellen oder Ihre Gedanken zu diesem Artikel zu teilen.