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.



Leave a Comment

So installieren Sie Thelia 2.3 unter CentOS 7

So installieren Sie Thelia 2.3 unter CentOS 7

Verwenden Sie ein anderes System? Thelia ist ein Open-Source-Tool zum Erstellen von E-Business-Websites und zum Verwalten von Online-Inhalten, die in PHP geschrieben wurden. Thelia Quellcode i

Installieren von Fuel CMS unter Ubuntu 16.04 LTS

Installieren von Fuel CMS unter Ubuntu 16.04 LTS

Verwenden Sie ein anderes System? Fuel CMS ist ein CodeIgniter-basiertes Content-Management-System. Der Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie t

So installieren Sie dotCMS unter Ubuntu 16.04

So installieren Sie dotCMS unter Ubuntu 16.04

Verwenden Sie ein anderes System? DotCMS ist ein Open-Source-Content-Management-System für Unternehmen, das in Java geschrieben wurde. Es enthält fast alle erforderlichen Funktionen

So installieren Sie WonderCMS unter Fedora 29

So installieren Sie WonderCMS unter Fedora 29

Verwenden Sie ein anderes System? WonderCMS ist ein Open Source, schnelles und kleines Flatfile-CMS, das in PHP geschrieben wurde. WonderCMS-Quellcode wird auf Github gehostet. Dieser Leitfaden wird

So installieren Sie Redaxscript 3.2 CMS auf einem Ubuntu 16.04 LAMP VPS

So installieren Sie Redaxscript 3.2 CMS auf einem Ubuntu 16.04 LAMP VPS

Verwenden Sie ein anderes System? Redaxscript 3.2 CMS ist ein modernes und ultraleichtes, kostenloses und Open-Source-Content-Management-System (CMS) mit Rocket-Fas

So installieren Sie das CMS vom Oktober 1.0 auf einem Fedora 26 LAMP VPS

So installieren Sie das CMS vom Oktober 1.0 auf einem Fedora 26 LAMP VPS

Verwenden Sie ein anderes System? 1.0 Oktober CMS ist ein einfaches und zuverlässiges, kostenloses und Open Source Content Management System (CMS), das auf dem Laravel-Framework basiert

So installieren Sie Subrion 4.1 CMS auf einem Ubuntu 16.04 LAMP VPS

So installieren Sie Subrion 4.1 CMS auf einem Ubuntu 16.04 LAMP VPS

Verwenden Sie ein anderes System? Subrion 4.1 CMS ist ein leistungsstarkes und flexibles Open-Source-Content-Management-System (CMS), das einen intuitiven und klaren Inhalt bietet

So installieren Sie ImpressPages CMS 5.0 auf einem Ubuntu 16.04 LAMP VPS

So installieren Sie ImpressPages CMS 5.0 auf einem Ubuntu 16.04 LAMP VPS

Verwenden Sie ein anderes System? ImpressPages CMS 5.0 ist ein einfaches und effektives, kostenloses und Open Source, benutzerfreundliches, MVC-basiertes Content Management System (CMS).

So installieren Sie BoltWire CMS unter CentOS 7

So installieren Sie BoltWire CMS unter CentOS 7

Verwenden Sie ein anderes System? Einführung BoltWire ist ein kostenloses und leichtes Content-Management-System, das in PHP geschrieben wurde. Im Vergleich zu den meisten anderen Content Managern

So installieren Sie TextPattern CMS 4.6.2 auf einem Fedora 26 LAMP VPS

So installieren Sie TextPattern CMS 4.6.2 auf einem Fedora 26 LAMP VPS

Verwenden Sie ein anderes System? TextPattern CMS 4.6.2 ist ein einfaches, flexibles, kostenloses und Open Source Content Management System (CMS), mit dem Webdesigner t

Installieren von Fuel CMS unter CentOS 7

Installieren von Fuel CMS unter CentOS 7

Verwenden Sie ein anderes System? Fuel CMS ist ein CodeIgniter-basiertes Content-Management-System. Der Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie t

Installieren von Bolt CMS unter CentOS 7

Installieren von Bolt CMS unter CentOS 7

Bolt ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Quellcode von Bolts wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Bolt CMS auf einem neuen CentOS 7 Vult installieren

So installieren Sie Redaxscript 3.2 CMS auf einem Fedora 26 LAMP VPS

So installieren Sie Redaxscript 3.2 CMS auf einem Fedora 26 LAMP VPS

Verwenden Sie ein anderes System? Redaxscript 3.2 CMS ist ein modernes und ultraleichtes, kostenloses und Open-Source-Content-Management-System (CMS) mit Rocket-Fas

So installieren Sie Couch CMS 2.0 auf einem FreeBSD 11 FAMP VPS

So installieren Sie Couch CMS 2.0 auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Couch CMS ist ein einfaches und flexibles, kostenloses und Open-Source-Content-Management-System (CMS), mit dem Webdesigner entwerfen können

So installieren Sie Anchor CMS auf einem Fedora 26 LAMP VPS

So installieren Sie Anchor CMS auf einem Fedora 26 LAMP VPS

Verwenden Sie ein anderes System? Anchor CMS ist eine supereinfache und extrem leichte, kostenlose und Open-Source-Blog-Engine für das Content Management System (CMS)

So installieren Sie BigTree CMS auf einem Debian 9 LAMP VPS

So installieren Sie BigTree CMS auf einem Debian 9 LAMP VPS

Verwenden Sie ein anderes System? BigTree CMS 4.2 ist ein schnelles und leichtes, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen mit umfangreichen Funktionen

So installieren Sie Raneto unter Ubuntu 17.10

So installieren Sie Raneto unter Ubuntu 17.10

Raneto ist eine kostenlose Open-Source-Wissensdatenbank, die auf Node.js basiert und einfach einzurichten und zu verwenden sowie einfach zu verwalten ist. Kategorien und Seiten ar

So installieren Sie Omeka Classic 2.4 CMS auf einem Ubuntu 16.04 LAMP VPS

So installieren Sie Omeka Classic 2.4 CMS auf einem Ubuntu 16.04 LAMP VPS

Verwenden Sie ein anderes System? Omeka Classic 2.4 CMS ist eine kostenlose Open-Source-Plattform für digitales Publizieren und Content Management System (CMS) für den Austausch von Digita

So installieren Sie Craft CMS unter Fedora 29

So installieren Sie Craft CMS unter Fedora 29

Verwenden Sie ein anderes System? Craft CMS ist ein in PHP geschriebenes Open Source CMS. Craft CMS-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie installieren

So installieren Sie Automad CMS unter Debian 9

So installieren Sie Automad CMS unter Debian 9

Verwenden Sie ein anderes System? Einführung Automad ist ein Open Source File-basiertes Content Management System (CMS) und eine in PHP geschriebene Template Engine. Automa

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.