Node.js ist eine kostenlose Open-Source-JavaScript-Plattform, die verwendet werden kann, um dynamische und reaktionsschnelle serverseitige Inhalte bereitzustellen. Es baut auf der V8-JavaScript-Engine von Chrome auf und kann JavaScript-Code außerhalb eines Webbrowsers ausführen. Es kann auf mehreren Betriebssystemen ausgeführt werden, darunter Linux, FreeBSD, Windows und macOS. Node.js funktioniert auch auf anderen Webservern wie Apache und Nginx.
In diesem Tutorial erfahren wir, wie Sie Node.js installieren und konfigurieren, um Backend-Anfragen zu verarbeiten, und Nginx konfigurieren, um Frontend-Anfragen unter Debian 10 zu verarbeiten.
Voraussetzungen
- Ein Server mit Debian 10.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Erste Schritte
Zunächst wird empfohlen, Ihr System auf die neueste Version zu aktualisieren. Sie können dies mit dem folgenden Befehl tun:
apt-get update -y
apt-get upgrade -y
Sobald Ihr Server aktualisiert ist, starten Sie ihn neu, um die Änderungen zu übernehmen.
Installieren Sie Node.js
Standardmäßig ist die neueste Version von Node.js nicht im Standard-Repository von Debian 10 verfügbar. Sie müssen es also über das Skript installieren.
Installieren Sie zuerst curl mit dem folgenden Befehl:
apt-get install curl -y
Laden Sie als Nächstes das Node.js-Installationsskript herunter und installieren Sie es mit dem folgenden Befehl:
curl -sL https://deb.nodesource.com/setup_12.x | bash -
Sobald die Installation abgeschlossen ist, können Sie die Node.js mit dem folgenden Befehl installieren:
apt-get install nodejs -y
Nach erfolgreicher Installation können Sie die Version von Node.js mit folgendem Befehl überprüfen:
nodejs --version
Sie sollten die Node.js-Version in der folgenden Ausgabe sehen:
v12.16.1
Sie können die NPM-Version auch prüfen, indem Sie den folgenden Befehl ausführen:
npm --version
Sie sollten die NPM-Version in der folgenden Ausgabe sehen:
6.13.4
Node.js-Anwendung erstellen
Zuerst müssen Sie ein Verzeichnis für Ihre Anwendung erstellen. Sie können es erstellen, indem Sie den folgenden Befehl ausführen:
mkdir nodeapp
Wechseln Sie als Nächstes in das Verzeichnis nodeapp und installieren Sie Express mit dem folgenden Befehl:
cd nodeapp
npm install express
Erstellen Sie als Nächstes mit dem Nano-Editor eine Node.js-Beispielanwendung mit Express:
nano-app.js
Fügen Sie den folgenden Inhalt hinzu:
var express =require('express');var app =express();app.get('/', function(req, res){ res.send("Nginx als Frontend-Server für Node.js!" );});app.listen(8000, '127.0.0.1');
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Führen Sie als Nächstes Ihre Anwendung mit dem folgenden Befehl aus:
Knoten app.js
Öffnen Sie als Nächstes ein anderes Terminal und überprüfen Sie die Anwendung mit dem folgenden Befehl:
netstat -antup | grep 8000
Sie sollten sehen, dass Ihre Node.js-Anwendung auf Port 8000 lauscht:
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 26193/Knoten
Sie können die Anwendung auch mit dem Curl-Befehl wie unten gezeigt überprüfen:
curl http://127.0.0.1:8000
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:
Nginx als Frontend-Server für Node.js!
Installieren und konfigurieren Sie PM2
PM2 ist ein Prozessmanager zur Verwaltung der Node.js-Anwendung. Sie können die Node.js-Anwendung einfach starten, stoppen und aktivieren, damit sie beim Booten mit PM2 startet.
Installieren Sie zuerst die neueste Version von PM2 mit NPM wie unten gezeigt:
npm install pm2 -g
Wechseln Sie nach der Installation mit dem folgenden Befehl in das Verzeichnis nodeapp und Ihre Anwendung:
cd nodeapp
pm2 start app.js
Sobald die Anwendung gestartet wurde, sollten Sie die folgende Ausgabe erhalten:
-------------__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\ \\\\_____ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///// //\\\___ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\ \__ _\/\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___ _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____ _\/\\\ _______________\/\\\____\///_____\/\\\_____/\\\//________ _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________ _\/\\\______________\/\\\____________\/\\\__/\\\\\\\\\\\\\\\_ _\///______________\///______________\// /__\///////////////__ Runtime Edition PM2 ist ein Produktionsprozess-Manager für Node.js-Anwendungen mit integriertem Load Balancer. Starten und daemonisieren Sie eine beliebige Anwendung:$ pm2 start app.js Load Balance 4 Instanzen von api.js:$ pm2 start api.js -i 4 Monitor in Produktion:$ pm2 monitor Lassen Sie pm2 beim Serverneustart automatisch starten:$ pm2 startup To gehe weiter checkout:http://pm2.io/ -------------[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2[PM2] PM2 Successfully daemonized[PM2] Starting / root/nodeapp/app.js in fork_mode (1 Instanz)[PM2] Fertig.???????????????????????????????? ????????????????????????????????????????????? ????????????????????????????????????????????? ?? Ich würde ? Name ? Namensraum ? Ausführung ? Modus ? PID? Betriebszeit ? ? ? Stand ? Zentralprozessor ? mem ? Benutzer ? Aufpassen ????????????????????????????????????????????????? ????????????????????????????????????????????? ????????????????????????????????? 0 ? App? Ursprünglich ? N / A ? Gabel ? 13202 ? 0s ? 0 ? online? 0% ? 27,2 MB ? Wurzel ? behindert ????????????????????????????????????????????????? ????????????????????????????????????????????? ????????????????????????????????????
In der obigen Ausgabe sehen Sie sehr nützliche Informationen wie Anwendungs-PID, Betriebszeit, Status, CPU- und Speichernutzung.
Führen Sie als Nächstes den folgenden Befehl aus, um ein Startskript für die Node.js-Anwendung zu erstellen und zu konfigurieren, damit Ihre Node.js-Anwendung beim Booten automatisch gestartet wird.
Start von pm2
Sie sollten die folgende Ausgabe erhalten:
[PM2] Init System gefunden:systemdPlatform systemdTemplate[Unit]Description=PM2 process managerDocumentation=https://pm2.keymetrics.io/After=network.target[Service]Type=forkingUser=rootLimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityEnvironment =PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binEnvironment=PM2_HOME=/root/.pm2PIDFile=/root/.pm2/pm2.pidRestart=on-failureExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrectExecReload=/usr/lib /node_modules/pm2/bin/pm2 reload allExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill[Install]WantedBy=multi-user.targetTarget path/etc/systemd/system/pm2-root.serviceCommand list[ ' systemctl enable pm2-root' ][PM2] Init-Konfiguration in /etc/systemd/system/pm2-root.service schreiben[PM2] Skript beim Start booten lassen...[PM2] [-] Ausführen:systemctl enable pm2-root ... Symlink /etc/systemd/system/multi-user.target.wants/pm2-root.service → /etc/systemd/system/pm2-roo erstellt t.service.[PM2] [v] Befehl erfolgreich ausgeführt.+----------------------------------- ----+[PM2] Prozessliste beim Neustart einfrieren via:$ pm2 save[PM2] Init-Skript entfernen via:$ pm2 unstartup systemd
Als nächstes starten Sie den PM2-Dienst mit dem folgenden Befehl:
systemctl start pm2-root
Überprüfen Sie als Nächstes den Status des PM2-Dienstes mit dem folgenden Befehl:
Systemctl-Status pm2-root
Sie sollten die folgende Ausgabe erhalten:
Konfigurieren Sie Nginx als Reverse-Proxy für Node.js
Zu diesem Zeitpunkt wird Ihre Node.js-Anwendung ausgeführt und lauscht auf dem localhost. Als Nächstes müssen Sie Nginx als Front-End-Proxyserver für die Node.js-Anwendung konfigurieren, damit jeder Benutzer über das Internet auf Ihre Anwendung zugreifen kann.
Installieren Sie zuerst den Nginx-Webserver mit dem folgenden Befehl:
apt-get install nginx -y
Erstellen Sie nach der Installation eine virtuelle Nginx-Host-Konfigurationsdatei für die Node.js-Anwendung:
nano /etc/nginx/sites-enabled/myapp.conf
Fügen Sie den folgenden Inhalt hinzu:
server {listen 80; Servername node.myserver.tld; Standort / { Proxy_Pass http://127.0.0.1:8000; Proxy_http_Version 1.1; Proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbindung 'upgrade'; Proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }}
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Nginx-Server neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Sie können den Status des Nginx-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe sehen:
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Greifen Sie auf Ihre Node.js-Anwendung zu
An diesem Punkt ist Nginx so konfiguriert, dass es Ihre Node.js-Anwendung bedient.
Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://node.myserver.tld ein. Sie sollten Ihre Node.js-Anwendung auf dem folgenden Bildschirm sehen:
Schlussfolgerung
Im obigen Artikel haben Sie gelernt, wie Sie die Node.js-Anwendung unter Debian 10 einrichten. Sie haben auch gelernt, wie Sie die Node.js-Anwendung als Daemon ausführen und Nginx als Reverse-Proxy konfigurieren, um die Anwendung zu bedienen. Ich hoffe, Sie können Ihre Node.js-Anwendung jetzt problemlos in einer Produktionsumgebung hosten.