Sprache auswählen

Node.js ist eine Plattform, um serverseitige Applikationen basierend auf JavaScript zu betreiben. Auf unseren Managed-Flex-Servern bieten wir Node.js in mehreren Versionen an. In dieser Anleitung beschreiben wir, wie Sie eine Node.js-Applikation auf Ihrem Managed Flex Server in Betrieb nehmen können.

Anforderungen

Node.js-Applikationen können ab Managed Flex Server M in Betrieb genommen werden.

Node.js-Applikation erstellen

Als Beispiel wollen wir eine «Hello World»-Webapplikation schreiben. Um sie als Website im Internet verfügbar zu machen, werden wir sie als Backend eines nginx-Reverse-Proxy betreiben.

Wir empfehlen Ihnen, für Ihre eigenen Applikationen einen Ordner ~/app/ und darin jeweils für jede Ihrer Applikationen einen eigenen Unterordner zu erstellen. So haben Sie jederzeit eine saubere Ordnung und eine klare Übersicht. Für unsere Beispielapplikation erstellen wir daher den Ordner ~/app/hello-world.

Platzieren Sie nun den Code an dieser Stelle. Für unsere Beispielapplikation braucht es eine Datei mit folgendem Inhalt, der wir den Namen hello.js geben.

~/app/hello-world/hello.js
var http = require('http');
var server = http.createServer(function(req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080');

Wie Sie sehen, erstellt hello.js ein Listening Socket und wartet auf http-Anfragen. Die IP-Adresse 127.0.0.1 wählen wir aus, weil wir unsere Applikation nicht direkt im Internet exponieren wollen, sondern dazu nginx als Proxy verwenden. Die Proxy-Funktion des nginx erwartet, dass Ihre Applikation auf dieser IP-Adresse erreichbar ist. Bei der Auswahl des Ports sind Sie grundsätzlich frei. Jeder Port zwischen 1024 und 65535 ist möglich. Beachten Sie jedoch, dass nur ein Listening Socket pro Port erstellt werden kann und dass das Starten Ihrer Applikation fehlschlagen würde, falls der ausgewählte Port bereits besetzt wäre. Es ist daher eine gute Taktik, Ports zu vermeiden, die üblicherweise von anderen Applikationen verwendet werden.

Tipp: Seien Sie sich bewusst, dass die Bezeichnung «localhost» zwei Adressen referenziert: Die IPv4-Loopback-Adresse 127.0.0.1 sowie die IPv6-Loopback-Adresse ::1. Je nachdem, wie Sie oder Ihre Applikation (bzw. Bibliothek oder Sprache) die «listen»-Anweisung implementieren, hört also Ihre Applikation auf verschiedene Interfaces. Wenn Sie dies vermeiden wollen, geben Sie direkt die IP-Adresse an.

Unsere Beispielapplikation benötigt keine weiteren NPM-Module. Sollte Ihre Applikation solche benötigen, können Sie diese ganz normal mittels NPM installieren lassen. Loggen Sie sich dafür via SSH in Ihr Hosting ein, wechseln Sie in ihr Applikationsverzeichnis und installieren Sie die gewünschten Module mit npm install.

Sie können nun die Beispielapplikation mit node hello.js starten. Zum beenden drücken Sie Ctrl-C:

node hello.js
Server running on port 8080
^C

Integration

Da es sich bei unserem Beispiel um eine Webapplikation handelt, die üblicherweise per http(s) zugänglich sein sollte, müssen Sie Ihren Webserver im Panel so konfigurieren, dass er die Anfragen als Proxy an Ihre neue Node-Applikation weiterleitet.

Webserver konfigurieren

Erstellen Sie im Hostpoint Control Panel eine Website mit der Grundeinstellung «Nginx Custom Mode (Proxy auf eigene Applikation)»:

Website erstellen Port 8080 de

Server-Adresse und Port
Die Proxy-Funktion erwartet, dass Ihre Applikation auf die IPv4-Loopback-Adresse 127.0.0.1 hört. Sie müssen hier also nur den Port angeben: 8080.

Wenn Sie bei einer bestehenden Website die Backend-Server-Adresse anpassen oder eine neue hinzufügen möchten, finden Sie die Einstellung unter «Websites» > «Bearbeiten» > «Locations» > «Proxy Einstellungen» > «Backend-Server».

NodeJS Backend Server Adresse 01 de

NodeJS Backend Server Adresse 02 de

Betrieb mit der Custom Service Control

Bisher haben Sie Ihre Applikation von Hand über die Shell gestartet. Während das zum Testen und Entwickeln zwar ein einfacher Weg sein kann, ist es für den produktiven Betrieb keine Option. Die Custom Service Control (CSC) kann sich um den Betrieb und das automatische Management Ihrer Applikation, zum Beispiel das Starten und Stoppen bei Wartungsarbeiten an Ihrem Server, kümmern.

Die Konfiguration der hello.js-App in der CSC ist denkbar einfach. Erstellen Sie dazu einen neuen Custom Service für die hello.js-Applikation:

hpservices supervisord add hello-world
successfully created dir for hello.js: /home/username/.services/supervisord/hello-world
successfully created dir for hello.js: /home/username/.services/supervisord/hello-world/log
successfully created dir for hello.js: /home/username/app/hello-world
supervisord service config file written: /home/username/.services/supervisord/hello-world/service.conf

Dabei wird in der Datei ~/.services/supervisord/hello-world/service.conf ein Konfigurationsgerüst für den neuen Service erstellt. Nur das command müssen wir für unsere Hello-World-Applikation anpassen, ansonsten können wir alle vorgeschlagenen Werte übernehmen. Für Node.js müssen das Command angepasst sowie einige Environment Variables ergänzt werden (Strichpunkt am Anfang der Zeile entfernen).:

~/.services/supervisord/hello-world/service.conf
[program:hello-world]
command=/usr/local/bin/node %(ENV_HOME)s/app/hello-world/hello.js  ; the program (can take args)
directory=%(ENV_HOME)s/app/hello-world/     ; directory to cwd to before exec (default no cwd)
autostart=true                ; start application at supervisord start (default: true)
stopwaitsecs=10               ; max num secs to wait before SIGKILL (default 10)
stdout_logfile=%(ENV_HOME)s/.services/supervisord/hello-world/log/default.log
stdout_logfile_maxbytes=1MB   ; filesize at which to rotate logfiles (default ist 50MB)
stdout_logfile_backups=10     ; number of stdout logfile backups (0 means none, default 10)
stderr_logfile=%(ENV_HOME)s/.services/supervisord/hello-world/log/default.err
stderr_logfile_maxbytes=1MB   ; filesize at which to rotate logfiles (default is 50MB)
stderr_logfile_backups=10     ; number of stderr logfile backups (0 means none, default 10)

Mit supervisorctl update können Sie die neue Konfiguration für unsere Hello-World-Applikation aktivieren:

supervisorctl update
hello-world: added process group

Achtung: Falls Sie einen Fehler erhalten, muss zuerst einmalig der Befehl «hpservices supervisord start» ausgeführt werden.

Genaueres zur Bedienung und zu den Möglichkeiten, die Ihnen mit der CSC zur Verfügung stehen, können Sie in der Anleitung zur Custom Service Control entnehmen.

Weiterführende Informationen

Nutzen Sie dieses Formular für Feedback zur obigen Anleitung.
Für Supportanfragen verwenden Sie bitte dieses Formular.

 

 

© 2001 - Hostpoint AG
Cookie

Wir verwenden Cookies  🍪

We use Cookies  🍪

Nous utilisons des cookies  🍪

Utilizziamo dei cookie  🍪

Die digitalen Auftritte von Hostpoint (Website, Control Panel, Support Center etc.) verwenden Cookies. Diese werden dazu verwendet, um Daten über Besucherinteraktionen zu sammeln. Wenn Sie auf «Akzeptieren» klicken, stimmen Sie der Verwendung dieser Cookies für Werbezwecke, Website-Analyse und Support zu. Gewisse essenzielle Cookies sind jedoch für eine ordnungsgemässe Funktion dieser Seiten unerlässlich und können deshalb nicht deaktiviert werden. Auch ohne Ihre Zustimmung können gewisse Daten in anonymisierter Form für statistische Zwecke und zur Verbesserung unserer Websites verwendet werden. Bitte beachten Sie unsere Datenschutzerklärung.

Hostpoint's digital presences (website, Control Panel, Support Center, etc.) use cookies. These are used to collect data on visitor interactions. If you click “Accept”, you agree to the use of these cookies for advertising purposes, website analysis and support. However, certain cookies are essential for the proper functioning of these pages and therefore cannot be disabled. Even without your consent, certain data may be used in anonymized form for statistical purposes and to improve our websites. Please note our Privacy policy.

Le sites Web de Hostpoint (site Web, Control Panel, Centre d'assistance, etc.) utilisent des cookies. Ces cookies servent à collecter des données sur les interactions des visiteurs. En cliquant sur «Accepter», vous consentez à l’utilisation de ces cookies à des fins de publicité, d’analyse du site Web et d’assistance. Certains cookies essentiels sont cependant indispensables au bon fonctionnement de notre sites Web et ne peuvent donc pas être désactivés. Même sans votre consentement, certaines données peuvent être utilisées sous forme anonymisée à des fins statistiques et pour améliorer notre sites Web. Veuillez prendre connaissance de notre Déclaration de protection des données.

Le presenze digitali di Hostpoint (sito web, Pannello di controllo, Support Center, ecc.) utilizzano i cookie. Questi vengono utilizzati per raccogliere dati sulle interazioni dei visitatori. Facendo clic su «Accetta», acconsente all’utilizzo di questi cookie per scopi pubblicitari, di analisi del sito web e di supporto. Alcuni cookie essenziali sono tuttavia indispensabili per il corretto funzionamento di questi siti web e pertanto non possono essere disattivati. Anche senza il Suo consenso, determinati dati potrebbero essere utilizzati in forma anonima per fini statistici e per l’ottimizzazione dei nostri siti web. Si prega di tenere conto della nostra Dichiarazione per la pivacy.

Ablehnen
Decline
Refuser
Rifiuta
Akzeptieren
Accept
Accepter
Accetta