So konfigurieren Sie Nginx als Reverse Proxy für Nodejs App

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

Nginx ist ein Open Source-Hochleistungs-HTTP-Server, Load Balancer und Reverse Proxy-Software. Es verfügt über eine einfache Konfigurationssprache, die die Konfiguration vereinfacht. In diesem Artikel wird gezeigt, wie Nginx als Reverse-Proxy für Nodejs-Anwendungen konfiguriert wird.

Lesen Sie auch: Der ultimative Leitfaden zum Sichern, Härten und Verbessern der Leistung von Nginx Web Server

Hinweis: Wenn Ihr System bereits mit läuft Nodejs und NPMWenn Ihre App auf einem bestimmten Port ausgeführt wird, gehen Sie direkt zu Schritt 4.

Schritt 1: Installieren von Nodejs und NPM unter Linux

Die neueste Version von Node.js und NPM kann über das offizielle Repository für Binärdistributionen von NodeSource Enterprise Linux, Fedora, Debian und Ubuntu installiert werden, das von der Nodejs-Website verwaltet wird. Sie müssen es Ihrem System hinzufügen, um die neuesten Nodejs- und NPM-Pakete wie gezeigt installieren zu können .

Auf Debian / Ubuntu

---------- Install Node.js v11.x ---------- 
$ curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
$ sudo apt-get install -y nodejs

---------- Install Node.js v10.x ----------
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs

Auf CentOS / RHEL und Fedora

---------- Install Node.js v11.x ---------- 
$ curl -sL https://rpm.nodesource.com/setup_11.x | bash -

---------- Install Node.js v10.x ----------
$ curl -sL https://rpm.nodesource.com/setup_10.x | bash -

Schritt 2: Erstellen einer Nodejs-Anwendung


Zu Demonstrationszwecken erstellen wir eine Beispielanwendung mit dem Namen “Sysmon”, die auf Port ausgeführt wird 5000 wie gezeigt.

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

Kopieren Sie den folgenden Code und fügen Sie ihn in das Feld ein server.js Datei (ersetzen 192.168.43.31 mit Ihrer Server-IP).

const http = require('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.end('Sysmon App is Up and Running!n');
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

Speichern Sie die Datei und beenden Sie sie.

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

$ sudo node /var/www/html/sysmon/server.js
OR
$ sudo node /var/www/html/sysmon/server.js &   #start it in the background to free up your terminal

Öffnen Sie nun einen Browser und greifen Sie über die URL auf Ihre Anwendung zu http://198.168.43.31:5000.

Greifen Sie über den Browser auf die Node App zu
Greifen Sie über den Browser auf die Node App zu

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 mit dem Namen /etc/apt/sources.list.d/nginx.list und fügen Sie die folgenden Zeilen hinzu.

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/  bionic nginx

Fügen Sie als Nächstes den Repository-Signaturschlüssel hinzu, aktualisieren Sie Ihren Systempaketindex und installieren Sie das nginx-Paket wie folgt.

$ wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.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/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
RHEL
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1

Hinweis: Aufgrund der Unterschiede zwischen CentOS und RHEL muss ersetzt werden $releasever mit entweder 6 (zum 6.x.) oder 7 (zum 7.x.), abhängig von Ihrer Betriebssystemversion.

Fügen Sie als Nächstes den Repository-Signaturschlüssel hinzu und installieren Sie das nginx-Paket wie gezeigt.

# wget --quiet http://nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.key
# yum install nginx

Nach erfolgreicher Installation Nginx, starten Sie es, aktivieren Sie es, um es beim Systemstart automatisch zu starten, und prüfen Sie, ob es betriebsbereit ist.

---------- On Debian/Ubuntu ---------- 
$ sudo systemctl status nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

---------- On CentOS/RHEL ---------- 
# systemctl status nginx
# systemctl enable nginx
# systemctl status nginx

Wenn Sie eine Systemfirewall ausführen, müssen Sie den Port öffnen 80 (HTTP), 443 (HTTPS) und 5000 (Knoten-App), den der Webserver auf Clientverbindungsanforderungen überwacht.

---------- On Debian/Ubuntu ---------- 
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 5000/tcp
$ sudo ufw reload

---------- On 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 Nodejs Application

Erstellen Sie nun eine Serverblock-Konfigurationsdatei für Ihre Node-App unter /etc/nginx/conf.d/ wie gezeigt.

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

Kopieren Sie die folgende Konfiguration und fügen Sie sie ein (ändern 192.168.43.31 mit Ihrer Server-IP und tecmint.lan mit Ihrem Domainnamen).

server {
    listen 80;
    server_name 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 abschließend den Nginx-Dienst neu, um die letzten Änderungen zu übernehmen.

$ sudo systemctl restart nginx
OR
# systemctl restart nginx

Schritt 5: Greifen Sie über den Webbrowser auf die Nodejs-Anwendung zu

Jetzt sollten Sie in der Lage sein, auf Ihre Node-App zuzugreifen, ohne den Port anzugeben, den sie abhört. Dies ist eine sehr bequeme Möglichkeit für Benutzer, darauf zuzugreifen.

http://sysmon.tecmint.lan 

Damit Ihr Testdomänenname funktioniert, müssen Sie lokales DNS mithilfe von einrichten / etc / hosts Datei, öffnen Sie sie und fügen Sie die folgende Zeile hinzu (denken Sie daran, sie zu ändern 192.168.43.31 mit Ihrer Server-IP und tecmint.lan mit Ihrem Doamin-Namen wie zuvor).

192.168.43.31 sysmon.tecmint.lan
Greifen Sie über Nginx Reverse Proxy auf die Node App zu
Greifen Sie über Nginx Reverse Proxy auf die Node App zu

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

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *