So richten Sie eine Koa.js-Knotenanwendung unter Ubuntu 16.04 LTS ein

In diesem Tutorial lernen wir, wie Sie eine Koa.js-Webanwendung für die Produktion unter Verwendung von Node.js einrichten. Wir werden auch eine Beispieldomäne mit einem Reverse-Proxy unter Verwendung von Apache verknüpfen und lernen, wie man sie mit einem geeigneten Prozessmanager verwaltet. Lassen Sie uns ohne weiteres loslegen.

Kurzbeschreibung von Node.js, Koa.js und Apache

Node.js ist ein schnelles, plattformübergreifendes JavaScript-Framework, das auf der V8-Engine von Chrome basiert. Es wird sowohl in Desktop- als auch in Serveranwendungen verwendet und ist bekannt für seine Single-Threaded-Ereignisschleifenbehandlung. Node.js verfügt über eine Paketregistrierung namens Node Package Manager (NPM), die über eine halbe Million Pakete hostet. NPM-Pakete (oder Module) sind das Kern-Backbone von Node.js, da es sich um Community-gesteuerten Code handelt, der in Ihrer Node.js-Anwendung nützlich sein kann. In unserer Koa.js-App ist Node.js der Kern seiner Funktion.

Koa.js ist ein minimalistisches Webframework, das auf der Node.js-Plattform basiert. Ziel des gleichen Teams, das hinter dem beliebten Express.js-Framework steht, ist es, das bereits minimalistische Express.js-Framework weiter zu minimieren, indem Middleware aus seinem Kern ausgeschlossen wird. Ein Hauptmerkmal von Koa.js ist die Tatsache, dass es keine Rückrufe gibt. Koa.js basiert auf ES6-basierten Generatoren und ES6-Funktionen wie Promises.

Apache ist ein beliebter Open-Source-Webserver, der als grundlegender Ausgangspunkt für Webserver verwendet wird. In diesem Tutorial verwenden wir Apache als Reverse-Proxy, mit dem wir unsere Anwendung mit einer Beispieldomäne verknüpfen können. Wenn Sie keine Domain haben, funktioniert dieses Tutorial weiterhin für Sie. Der einzige Unterschied besteht darin, dass die Website auf Ihrer VPS-IP anstelle einer Domain ausgeführt wird.

Einrichten von Node.js.

Wie bei jedem Node.js-Framework müssen Sie Node.js auf Ihrem VPS installieren. Für dieses Tutorial gehe ich davon aus, dass Sie Node.js bereits auf Ihrem System installiert haben. Wenn nicht, können Sie einfach den Anweisungen hier folgen .

Einrichten unseres Anwendungsverzeichnisses

Wir müssen einen Ordner erstellen, der die Kerndateien unserer Anwendung enthält.

mkdir site

Fühlen Sie sich frei, durch siteeinen anderen Namen zu ersetzen, den Sie für das Verzeichnis möchten. Als nächstes müssen wir unsere Node.js-Paketdatei initialisieren. Wechseln Sie in das gerade erstellte Verzeichnis, führen Sie es aus und führen Sie npm initdie Eingabeaufforderungen aus. Am Ende sollte es ungefähr so ​​aussehen:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Koa.js Site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "yourname",
  "license": "ISC"
}

Koa.js installieren

Nachdem wir unser Verzeichnis eingerichtet haben, können wir mit der Installation von Koa.js fortfahren. Geben Sie im aktuellen Arbeitsverzeichnis /siteFolgendes ein.

npm install koa

Dadurch wird das Koa.js-Modul von NPM heruntergeladen und zur zukünftigen Verwendung in unserem Projektverzeichnis installiert. Als Nächstes erstellen wir unsere Beispielanwendungsdatei, die unseren App-Code enthält. Erstellen Sie dazu eine index.jsDatei.

nano index.js

Erstellen Sie in der Datei eine Beispielanwendung.

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
     ctx.body = 'Hello World';
 });

app.listen(3000);
console.log('Website is live!')

Speichern und schließen Sie die Datei. CTRL+ X.

Wir werden sicherstellen wollen, dass unsere Anwendung ordnungsgemäß ausgeführt wird. Um es zu starten, führen node index.jsSie es aus und Sie sehen es Website is livein der Konsole.

Apache installieren

Nachdem wir wissen, dass unsere Website funktionsfähig ist, können wir Apache und seine Abhängigkeiten installieren.

sudo apt install -y libapache2-mod-proxy-html libxml2-dev

Um die in Apache enthaltene Reverse-Proxy-Funktion verwenden zu können, müssen die erforderlichen Module aktiviert werden.

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

Einige dieser Module wurden möglicherweise bereits aktiviert, aber es ist immer gut, sie noch einmal zu überprüfen.

Jetzt müssen wir die Standardkonfigurationsdatei für Apache bearbeiten.

sudo nano /etc/apache2/sites-enabled/000-default.conf

Hier müssen wir einen Block für unsere Anwendung hinzufügen.

<VirtualHost *:*>
    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:3000/
    ProxyPassReverse / http://0.0.0.0:3000

    ServerName localhost
</VirtualHost>

Speichern Sie die Datei, CTRL+ X.

Möglicherweise stellen Sie fest, dass wir den Port 3000als Port für unsere ProxyPassund ProxyPassReverseIP verwenden. Da es sich um denselben Port handelt, auf dem wir unsere Koa.js-Anwendung ausführen, müssen wir unbedingt den richtigen Port eingeben.

Sobald die Änderungen vorgenommen wurden, müssen wir Apache neu starten und unsere Koa.js-Anwendung neu starten.

sudo systemctl restart apache2

Dadurch wird sichergestellt, dass unsere Konfigurationsdatei aktiv und betriebsbereit ist, wenn wir unsere Koa.js-Anwendung starten. Navigieren Sie nach dem Neustart von Apache zurück zu Ihrem Site-Verzeichnis und starten Sie die Anwendung Koa.js wie zuvor. Navigieren Sie in Ihrem Webbrowser zu http://yourdomainoder http://yourip:, und Sie sehen "Hallo Welt".

Verwalten unserer Anwendung mit systemd

Nachdem wir uns nun mit den Grundlagen der Erstellung einer Beispielanwendung für Koa.j befasst haben, stellen wir fest, dass es in einer Produktionsumgebung unpraktisch ist, die Anwendung so zu starten, wie wir sie jetzt sind. Ein Prozessmanager ist definitiv eine Voraussetzung. Hier kommt systemd ins Spiel. In einfachen Worten besteht systemd aus Software, die Bausteine ​​für ein Linux-System bereitstellt. Ähnlich wie "init" bietet es ein System zum Verwalten von Benutzerprozessen nach dem Systemstart. Im Fall unserer Anwendung können wir mit systemd unsere Website nach dem Neustart des Systems automatisch starten, falls ein Ereignis auftritt, das die Systemverfügbarkeit stört. Es bietet auch eine Reihe von Tools, die bei der Verwaltung unserer Anwendung hilfreich sein können. Das Beste daran ist, dass es in Ubuntu 16.04 LTS integriert ist, sodass wir keine zusätzliche Software installieren müssen.

Erstellen Sie einen systemd-Dienst

Alles, was wir zum Starten unserer Anwendung benötigen, wird in einer Datei namens aufgerufen service. Es enthält Details zu unserer App, wie z. B. Name, Verzeichnis, Umgebung und mehr. Öffnen Sie zum Erstellen unserer Systemdatei einen Texteditor.

sudo nano /lib/systemd/system/site.service

Bearbeiten und speichern Sie die Datei wie folgt.

[Unit]
Description=desc here
Documentation=https://example.com
After=network.target

[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

Ersetzen Sie youruserdurch den Benutzernamen Ihres Servers. Hier ein kurzer Überblick über die wichtigen Bereiche:

  • After - Dies weist systemd an, zu warten, bis die Netzwerkschnittstelle bereit ist, bevor unsere Anwendung gestartet wird.
  • Environment- Hier können wir Umgebungsvariablen für unsere Anwendung angeben. Unser Node.js-Port ist einer von ihnen.
  • Type - Dies informiert systemd darüber, dass unsere App nur gestartet werden kann, ohne dass Benutzerrechte und dergleichen verloren gehen.
  • User- Dies teilt systemd mit, dass wir die Anwendung unter unserem Benutzerkonto ausführen möchten, was empfohlen wird. Das Ausführen von Anwendungen als Root-Benutzer kann zu vielen Sicherheitslücken führen.
  • ExecStart - Im Wesentlichen der Befehl, den systemd ausführt, um unsere Anwendung zu starten, ähnlich wie wir sie zuvor manuell gestartet haben.
  • Restart- Gibt systemd an, unter welchen Bedingungen unsere Anwendung neu gestartet werden soll. In diesem Fall möchten wir, dass unsere Website im Fehlerfall neu gestartet wird.

Starten Sie den systemd-Dienst

Wir sind jetzt bereit, unseren systemd-Service zu starten.

sudo systemctl daemon-reload

Dies ist erforderlich, wenn sich eine systemd-Servicedatei ändert, damit systemd alle neu vorgenommenen Änderungen registriert.

Starten Sie dann Ihre Anwendung.

sudo systemctl start site

Navigieren Sie in Ihrem Browser erneut zu der Site, um zu überprüfen, ob alles funktioniert.

Schlüsselsystem- und Verwaltungsfunktionen

  • stop - Stoppt die Anwendung vollständig.
  • restart - Stoppt die Anwendung und startet sie unter einem neuen Prozess erneut.
  • enable - Weist systemd an, die Anwendung zu starten, wenn Sie Ihren Computer starten.
  • status - Zeigt Informationen zur aktuell ausgeführten Anwendung an, z. B. Betriebszeit, Anwendungsstatus und mehr.

Führen Sie die folgenden Schritte aus, um eine dieser Funktionen zu verwenden.

systemctl <function> site

Fazit

Wir haben eine Koa.js-Anwendung erfolgreich eingerichtet und gelernt, wie man Proxy umkehrt und mit systemd verwaltet. Sie können jetzt Ihre Anwendung erweitern und auf diesem Beispiel aufbauen. Wenn Sie mehr über Koa.js und mehr Dinge erfahren möchten, die Sie damit tun können, besuchen Sie deren Website , um weitere hilfreiche Informationen zu erhalten. Wenn Sie mehr über den Prozessmanager von systemd erfahren möchten, lesen Sie hier die Dokumentation dazu . Wenn Sie mehr über den Reverse-Proxy von Apache erfahren möchten, können Sie diese hier nachlesen .



Leave a Comment

So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

So installieren Sie MODX Revolution auf einem CentOS 7 LAMP VPS

Verwenden Sie ein anderes System? MODX Revolution ist ein schnelles, flexibles, skalierbares, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen, das i

Installieren von McMyAdmin unter Ubuntu 14.10

Installieren von McMyAdmin unter Ubuntu 14.10

McMyAdmin ist ein Minecraft-Server-Kontrollfeld, mit dem Sie Ihren Server verwalten können. Obwohl McMyAdmin kostenlos ist, gibt es mehrere Editionen, von denen einige pai sind

Richten Sie einen TeamTalk-Server unter Linux ein

Richten Sie einen TeamTalk-Server unter Linux ein

TeamTalk ist ein Konferenzsystem, mit dem Benutzer hochwertige Audio- / Videogespräche führen, Text chatten, Dateien übertragen und Bildschirme freigeben können. Es i

So installieren und konfigurieren Sie CyberPanel auf Ihrem CentOS 7-Server

So installieren und konfigurieren Sie CyberPanel auf Ihrem CentOS 7-Server

Verwenden Sie ein anderes System? Einführung CyberPanel ist eines der ersten Control Panels auf dem Markt, das sowohl Open Source als auch OpenLiteSpeed ​​verwendet. Was ist das?

Installieren Sie phpBB With Apache unter Ubuntu 16.04

Installieren Sie phpBB With Apache unter Ubuntu 16.04

PhpBB ist ein Open Source Bulletin Board Programm. Dieser Artikel zeigt Ihnen, wie Sie phpBB auf einem Apache-Webserver unter Ubuntu 16.04 installieren. Es wurde geschrieben

Richten Sie einen Benutzer ohne Rootberechtigung mit Sudo Access unter Ubuntu ein

Richten Sie einen Benutzer ohne Rootberechtigung mit Sudo Access unter Ubuntu ein

Es kann gefährlich sein, nur einen Benutzer zu haben, nämlich root. Lassen Sie uns das beheben. Vultr bietet uns die Freiheit, mit unseren Benutzern und unseren Servern zu tun, was wir wollen

Installieren Sie eSpeak unter CentOS 7

Installieren Sie eSpeak unter CentOS 7

Verwenden Sie ein anderes System? ESpeak kann TTS-Audiodateien (Text-to-Speech) generieren. Diese können aus vielen Gründen nützlich sein, z. B. um Ihr eigenes Turin zu erstellen

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

Installieren und Verwenden von Yunohost unter Debian 7 x64

Installieren und Verwenden von Yunohost unter Debian 7 x64

Dieses Tutorial führt Sie durch die Installation des Yunohost Complete Server-Kontrollfelds unter Debian. Folgen Sie einfach dem Tutorial und Ihr Server wird in Betrieb sein

So installieren Sie Cockpit unter CentOS 7

So installieren Sie Cockpit unter CentOS 7

Cockpit ist ein kostenloses Open Source-Programm für die Linux-Serververwaltung. Es ist sehr leicht und hat eine schöne, einfach zu bedienende Weboberfläche. Es erlaubt System

So richten Sie ein GitHub Style Wiki mit Gollum unter CentOS 7 ein

So richten Sie ein GitHub Style Wiki mit Gollum unter CentOS 7 ein

Gollum ist die Git-basierte Wiki-Software, die als Backend des GitHub-Wikis verwendet wird. Durch die Bereitstellung von Gollum können Sie ein GitHub-ähnliches Wiki-System auf Ihnen hosten

So richten Sie die TCP-Optimierung unter Linux ein

So richten Sie die TCP-Optimierung unter Linux ein

Einführung Haben Sie Probleme mit der Konnektivität, wenn Besucher aus anderen Ländern auf Ihre Website zugreifen? Ich frage mich, warum die Download-Geschwindigkeit von Ihrem Foreig

So installieren Sie Gitea unter Fedora 29

So installieren Sie Gitea unter Fedora 29

Verwenden Sie ein anderes System? Gitea ist ein alternatives Open-Source-Versionskontrollsystem, das von Git unterstützt wird. Gitea ist in Golang geschrieben und ist

So stellen Sie Ghost v0.11 LTS unter Ubuntu 16.04 bereit

So stellen Sie Ghost v0.11 LTS unter Ubuntu 16.04 bereit

Verwenden Sie ein anderes System? Ghost ist eine Open-Source-Blogging-Plattform, die seit 201 bei Entwicklern und normalen Benutzern immer beliebter wird

So installieren Sie Paste 2.1 auf einem Fedora 26 LAMP VPS

So installieren Sie Paste 2.1 auf einem Fedora 26 LAMP VPS

Verwenden Sie ein anderes System? Paste 2.1 ist eine einfache und flexible, kostenlose und Open-Source-Pastebin-Anwendung zum Speichern von Code, Text und mehr. Es war ursprünglich

So installieren Sie Pip unter Linux

So installieren Sie Pip unter Linux

Pip ist ein Tool zum Verwalten von Python-Paketen. Die Verwendung eines Paketmanagers ermöglicht eine effiziente Verwaltung Ihres Servers. In diesem Tutorial erkläre ich, wie t

So stellen Sie Google BBR unter CentOS 7 bereit

So stellen Sie Google BBR unter CentOS 7 bereit

BBR (Bottleneck Bandwidth and RTT) ist ein neuer Algorithmus zur Überlastungskontrolle, der von Google zum Linux-Kernel-TCP-Stack hinzugefügt wird. Mit BBR an Ort und Stelle,

So installieren Sie YOURLS unter CentOS 7

So installieren Sie YOURLS unter CentOS 7

YOURLS (Your Own URL Shortener) ist eine Open-Source-Anwendung zur URL-Verkürzung und Datenanalyse. In diesem Artikel werden wir den Installationsprozess behandeln

So aktivieren Sie TLS 1.3 in Apache unter Fedora 30

So aktivieren Sie TLS 1.3 in Apache unter Fedora 30

Verwenden Sie ein anderes System? TLS 1.3 ist eine Version des TLS-Protokolls (Transport Layer Security), das 2018 als vorgeschlagener Standard in RFC 8446 veröffentlicht wurde

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.