Richten Sie einen Keystone.js-Server mit Nginx Reverse Proxy unter Ubuntu 16.04 ein

In diesem Tutorial richten wir einen Webserver mit einem Reverse-Proxy ein. Das CMS, das wir verwenden werden, ist Keystone.js, ein bekanntes Webanwendungsframework, das auf Express.js basiert. Der Reverse-Proxy, den wir verwenden werden, ist Nginx, ein kostenloser Open-Source-Reverse-Proxy sowie ein HTTP-Server. Die Datenbank, die wir verwenden werden, ist MongoDB, eine NoSQL-Dokumentendatenbank. Dies setzt voraus, dass Sie eine Domain mit eingerichteten Datensätzen haben. Wenn Sie dieses Set nicht haben, kümmern Sie sich darum und kehren Sie zu diesem Tutorial zurück.

Knoten installieren

Zunächst installieren wir Node.js, einen Javascript-Interpreter, der auf der Chrome V8-Javascript-Engine basiert.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

Nginx installieren

Als nächstes installieren wir Nginx, unseren Reverse-Proxy.

sudo apt update
sudo apt install nginx

Dadurch werden die Paketlisten aktualisiert und Nginx installiert. Sobald die Installation abgeschlossen ist, richten wir unser Knotenprojekt ein.

Initialisierung unseres Keystone-Projekts

Erstellen Sie unser Knotenprojekt. Erstellen Sie dazu einfach einen neuen Ordner.

mkdir website

Dann erstellen wir unsere package.jsonDatei. Führen npm initSie dazu einfach Ihr Terminal aus, füllen Sie die Felder aus und antworten Sie yeszur Bestätigung mit " ". Sobald Sie die package.jsonDatei erstellt haben, installieren wir die folgenden Knotenmodule.

sudo npm install -g generator-keystone
sudo npm install -g yo

Führen Sie nach dem Herunterladen die folgenden Schritte aus.

yo keystone

Füllen Sie die erforderlichen Felder aus. Es wird Sie für die fragen project name, die template engine, emailfür Bedienfeld, und so weiter. Wenn Sie nicht wissen, was Sie auswählen sollen, sind die Standardeinstellungen in Ordnung. Nachdem Sie Ihr Keystone-Setup konfiguriert haben, können wir testen, ob unser Server ausgeführt wird, indem Sie Folgendes eingeben node keystone, um Ihre Anwendung zu starten. Standardmäßig wird Ihre Anwendung localhostam Port ausgeführt 3000. Beachten Sie, dass eine Datenbank nicht sofort für Sie verfügbar ist, wenn Sie MongoDB nicht installiert haben. Wie Sie es später installieren, erfahren Sie im Tutorial.

Hier ist das grundlegende Verzeichnislayout für Keystone.js:

  • /lib - Hier speichern Sie Ihre benutzerdefinierten Bibliotheken und anderen Code.

  • /models- Hier speichern Sie die Datenbankmodelle Ihrer Anwendung. KeystoneJS verwendet MongoDB als Datenbankanbieter.

  • /public - Hier werden Ihre statischen Dateien (CSS, JS, Bilder usw.) gespeichert.

  • /routes/api - Hier werden die API-Controller Ihrer Anwendung gespeichert.

  • /routes.views - Anwendungsansichts-Controller werden hier gespeichert.

  • /templates - Hier werden alle Vorlagendateien Ihrer Anwendung gespeichert.

  • /updates - Hier werden Ihre Migrationsskripte gespeichert.

  • package.json - Dies ist Ihre npm-Konfigurationsdatei, die der Generator für uns generiert hat.

  • keystone.js - Unsere Hauptstartdatei führen wir aus, wenn wir die Website starten.

Initialisierung unserer Datenbank

Wie bereits erwähnt, ist unsere Datenbank MongoDB, eine zuverlässige dokumentenorientierte NoSQL-Datenbank. Wenn Sie MongoDB bereits installiert haben, können Sie diesen Abschnitt überspringen. Wenn nicht, erfahren Sie hier, wie Sie es unter Ubuntu 16.04 installieren.

Importieren Sie den öffentlichen Schlüssel, der für das mongoDB-Paket verwendet wird.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Erstellen Sie die Listendatei, mit der das Paket installiert wird.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Aktualisieren Sie Ihre Paketlisten mit apt.

sudo apt update

Installieren Sie schließlich MongoDB.

sudo apt install mongodb-org -y

Wenn diese Installation abgeschlossen ist, starten Sie MongoDB.

sudo service mongod start

Dadurch wird der MongoDB-Prozess am Port gestartet 27017.

MongoDB wird in der gesamten Anwendung verwendet und zum Speichern von Informationen verwendet, die wir für unsere Modelle verwenden, z. B. ein UserModell. Keystone verwendet es als Datenbank Ihrer Wahl. Derzeit können Sie keine anderen Datenbankanbieter verwenden.

PM2 installieren

Jetzt ist es Zeit, PM2 (Process Manager 2) zu installieren. PM2 ist ein Prozessmanager für Node.js-Anwendungen in Form eines npm-Moduls. Es bietet Ihnen eine einfache Möglichkeit, Ihre Anwendungen zu verwalten und im Hintergrund auszuführen. Da es sich um NPM handelt, müssen wir zur Installation nur Folgendes ausführen.

sudo npm install pm2 -g

Dies weist npm an, es global zu installieren, damit wir es überall in unserem System verwenden können.

Ausführen / Verwalten einer Anwendung auf PM2

Zuvor haben wir unsere Webanwendung mit ausgeführt node keystone. Bei PM2 ist das etwas anders. Wir führen jetzt unsere Knoten-App wie folgt aus.

pm2 start keystone.js

Dadurch wird unsere PM2-Anwendung zu unserer Prozessliste hinzugefügt, und ein kleines Feld wird angezeigt, damit Sie sehen können, dass sie tatsächlich online ist. Beachten Sie das Feld idfür Ihren Prozess. Halten Sie dies in der Nähe, da wir später noch viele Hinweise darauf geben werden.

Anzeigen der Protokolle für Ihre Anwendung.

pm2 logs [id]

Zum Beispiel, pm2 logs 0wenn dies Ihre erste PM2-Anwendung ist.

So stoppen Sie Ihre Webanwendung jederzeit.

pm2 stop [id]

So löschen Sie Ihre Anwendung vollständig.

pm2 delete [id]

PM2 verfügt sogar über ein Überwachungs-Dashboard, wenn Sie einige grundlegende Statistiken für Ihre Anwendung anzeigen möchten, und Sie können damit darauf zugreifen.

pm2 monit

Hier werden einige grundlegende Informationen wie RAM-Auslastung, CPU-Auslastung und Betriebszeit angezeigt.

Eine großartige Funktion, die PM2 bietet, ist watching. Im Wesentlichen erkennt PM2 Änderungen an einer der Dateien im selben Verzeichnis wie Ihre Startdatei automatisch und startet Ihre Anwendung automatisch neu. Um es zu aktivieren, starten Sie einfach Ihre Anwendung neu, übergeben Sie ihr jedoch ein Überwachungsflag.

pm2 restart [id] --watch

Um die Überwachung zu deaktivieren, nachdem sie aktiviert wurde, führen Sie einfach denselben Befehl erneut aus. Die Überwachung wird deaktiviert.

In diesem Tutorial werden wir aufhören zu schauen.

Einrichten Ihres Reverse Proxys

Stellen Sie sicher, dass Sie Nginx installiert haben. Wenn dies aus irgendeinem Grund nicht der Fall ist, lesen Sie die obigen Schritte.

Passen Sie Ihre Firewall-Einstellungen an. Unter Ubuntu ufwist die offizielle Firewall. Standardmäßig sind Verbindungen am Port blockiert 80. Wir müssen eine Ausnahme für Nginx on Port hinzufügen 80, auf der unsere Webanwendung ausgeführt wird.

sudo ufw allow 'Nginx HTTP'

Stellen Sie sicher, dass Ihr Nginx-Server ausgeführt wird.

systemctl status nginx

ActiveWenn Sie unter dem Abschnitt sehen active (running), sind Sie fertig. Wenn nicht, können Sie versuchen, den Dienst neu zu starten.

systemctl restart nginx

Löschen Sie die Standard-Nginx-Konfigurationsdatei.

sudo rm /etc/nginx/sites-available/default

Erstellen Sie eine neue und rufen Sie sie einfach auf node.

sudo nano /etc/nginx/sites-available/node

Fügen Sie Folgendes in die Datei ein und ersetzen Sie es example.comdurch Ihre Website-Domain.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

Beachten Sie, dass dies die proxy_passIP angibt, auf der unsere Keystone-App lokal ausgeführt wird und die sich localhostam Port befindet 3000. listen 80ist der Port, an den die App geleitet werden soll, in diesem Fall Port 80.

Dann müssen wir einen Symlink oder einen symbolischen Link zu einem Ordner namens erstellen sites-enabled. Der Unterschied zwischen sites-enabledund sites-availablebesteht darin, dass sites-enabledes tatsächlich von Nginx geladen wird.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

Jetzt ist Ihre Konfigurationsdatei in sites-availableeinsatzbereit und wird von geladen sites-enabled. Starten Sie Nginx einfach neu, um die Konfiguration so anzuwenden, dass sie wirksam wird.

sudo systemctl restart nginx

Starten Sie abschließend Ihre PM2-Anwendung neu

pm2 restart [id]

Jetzt können Sie in einem Browser zu Ihrer Domain navigieren und sehen einen Welcome to KeystoneBildschirm mit einem Bereich, in dem Sie sich anmelden können.

Wenn Sie es sehen, haben Sie erfolgreich einen Node.js-Produktionswebserver eingerichtet. Wenn nicht, haben Sie möglicherweise einen Schritt falsch ausgeführt, und Sie möchten möglicherweise zurückgehen und jeden Schritt sorgfältig ausführen.

Sie können mehr über Nginx erfahren, indem Sie deren Website besuchen .

Ich hoffe, Ihnen hat dieses Tutorial gefallen, und ich hoffe, dies hat Ihnen geholfen, Ihren eigenen Webserver für die Produktion auf Ihrem Vultr VPS einzurichten.

Einen Kommentar hinterlassen

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.