Das Ausführen der nodejs-App in der Entwicklungs- oder lokalen Umgebung, in der die GUI-Schnittstelle im Betriebssystem bereitgestellt wird, ist eine einfache Aufgabe, aber wenn es darum geht, sie in der Produktion auf einem Cloud-Server bereitzustellen, wissen die meisten Anfänger nicht, wie sie anfangen sollen. Hier ist also die detaillierte Schritt-für-Schritt-Anleitung zum Einrichten einer einfachen nodejs-App.
1. Erstellen eines neuen sudo-Benutzers
HINWEIS:Wenn Sie bereits einen Benutzer mit Superuser-Rechten erstellt haben, müssen Sie diesen Schritt nicht ausführen.
Tatsächlich können Sie direkt mit root
arbeiten Benutzer, aber dann werden einige gefährliche Befehle, die Sie im Terminal falsch eingegeben haben, dem Server Schaden zufügen. Also lieber mit sudo
zugreifen und zum Erstellen zuerst mit root
anmelden Benutzerrechte:
$ ssh [email protected]_server_ip
Und vervollständigen Sie es dann, indem Sie das Passwort und die Host-Authentizität angeben.
Erstellen Sie nun mit sudo
einen neuen Benutzer Zugriff:
$ adduser sonu
$ usermod -aG sudo sonu
Der erste Befehl erstellt einen neuen Benutzer, nachdem einige Fragen gestellt wurden, und der zweite Befehl fügt diesen Benutzer zu sudo
hinzu Gruppe (Superuser-Gruppe).
Melden Sie sich jetzt vom Server ab (verwenden Sie exit
Befehl) und melden Sie sich mit diesem neuen Benutzer an.
$ ssh [email protected]_ip
2. Installieren Sie nginx und node.js
Aktualisieren Sie zuerst apt
Repository mit diesem Befehl:
$ sudo apt update
Installieren Sie nun nginx mit
$ sudo apt install nginx
Und dann nodejs
mit
$ curl -sL https://deb.nodesource.com/setup_6.x | bash
$ sudo apt install -y nodejs
Sie können auch die offizielle nodesource [Installationsanleitung.] (https://github.com/nodesource/distributions#installation-instructions) für die neueste node.js-Version auschecken.
3. Starten einer einfachen nodejs (Express)-App
Wir werden eine einfache expressjs-App mit express-generator
erstellen . Installieren Sie also zuerst express-generator
global mit folgendem:
$ sudo npm i express-generator -g
Danach erstellen Sie die Express-App im Home-Verzeichnis
$ cd ~
$ express testapp
Starten Sie nun die App mit :
$ cd testapp
$ npm install & npm start
Ihre App wird unter http://localhost:8080
gestartet Hafen.
4. Installieren Sie pm2, um es für immer auszuführen
Führen Sie einfach npm start
aus wird die App nicht neu starten, wenn die App bei einem Serverausfall oder etwas ausfällt. Um es also bei jedem Systemneustart am Laufen zu halten, verwenden wir pm2
nodejs-App. Installieren Sie es global, indem Sie sudo npm i pm2 -g
eingeben und führen Sie die App mit dem folgenden Befehl für immer aus.
$ cd testapp/bin
$ pm2 start www
5. Zuordnung von 8080 zum Standard-HTTP-Port.
Der letzte Schritt besteht nun darin, nginx zu verwenden, um 8080
zuzuordnen Port auf den Standardwert 80
http-Port. Wir nennen es Reverse-Proxy-Server.
Öffnen Sie den Standardserverblock von nginx und löschen Sie alles aus dieser Datei.
$ sudo nano /etc/nginx/sites-available/default
Fügen Sie den folgenden Code in diese Datei ein und speichern Sie sie:
server {
listen 80;
server_name "";
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Testen Sie abschließend die Konfiguration und laden Sie nginx neu:
$ sudo nginx -t
$ sudo nginx -s reload
## or restart the nginx
$ sudo service nginx restart
Ein zusätzlicher Schritt ist das Deaktivieren von Port 8080
über ubuntu ufw
Firewall. Wenn Sie es aktivieren, werden alle Ports blockiert. Lassen Sie also einige gängige Ports über Nginx Full
zu Konfiguration.
$ sudo ufw enable
$ sudo ufw allow 'Nginx Full'