Einrichten einer Node.js App für eine Website mit Apache auf Ubuntu 16.04

Node.js ist eine JavaScript-Laufzeitumgebung, mit der Sie problemlos serverseitige Anwendungen erstellen können. Dieses Tutorial erklärt, wie Sie ein Cloud Server mit Ubuntu 16.04 so einrichten, dass Node.js-Skripte als Dienst ausgeführt werden, und den Apache-Server so konfigurieren, dass das Skript über das Web zugänglich ist.

Obwohl Node.js-Skripte von der Befehlszeile aus über den Bildschirm ausgeführt werden können, bietet die Ausführung der Skripte als Dienst über den Prozessmanager PM2 den Skripten ein robusteres Verhalten. Wenn die Skripte auf diese Weise als Dienst ausgeführt werden, werden sie automatisch neu gestartet, wenn der Server neu gestartet wird oder das Skript abstürzt.

PM2 ist ein Prozessmanager für Node.js mit einer Vielzahl von Funktionen, mit denen Sie Ihre Node.js-Skripte steuern und verwalten können. Besuchen Sie die offizielle PM2-Website. für weitere Informationen zur Verwendung von PM2.

    Anforderungen

    • Ein Cloud Server unter Linux (Ubuntu 16.04).
    • Ein funktionierender Domänenname, der auf den Server zeigt.
    • Apache Webserver installiert und läuft.

    Cloud Server von IONOS

    Vertrauen Sie auf flexibel skalierbare und zuverlässige Cloud Server auf hochverfügbarer Infrastruktur mit Standort Deutschland inklusive persönlichem Berater und minutengenauer Abrechnung - Sie zahlen also wirklich nur Ihre benötigten Ressourcen!

    VMware Virtualisierung
    Rest API
    Unlimited Traffic

    Node.js installieren

    Aktualisieren Sie die Pakete Ihres Servers und installieren Sie curl mit den folgenden Befehlen:

    sudo apt-get update
    sudo apt-get install curl

    Laden Sie das Node.js PPA herunter:

    curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh

    Führen Sie den Befehl nodesource_setup.sh aus, um das PPA zum Paket-Cache Ihres Servers hinzuzufügen:

    sudo bash nodesource_setup.sh
    Hinweis

    Dieses Skript aktualisiert den Server automatisch. Es ist nicht erforderlich, apt-get update ein zweites Mal auszuführen.

    Installieren Sie Node.js:

    sudo apt-get install nodejs

    Dadurch wird auch npm automatisch installiert.

    Schließlich installieren Sie das build-essential Paket für npm:

    sudo apt-get install build-essential

    Erstellen einer exemplarischen Node.js Anwendung

    Für dieses Beispiel werden wir zunächst ein separates Verzeichnis im Dokumentenstamm Ihrer Website erstellen, um Node.js-Anwendungen unterzubringen:

    sudo mkdir /var/www/html/nodejs

    Erstellen Sie die Datei hello.js in diesem Verzeichnis:

    sudo nano /var/www/html/nodejs/hello.js

    Den folgenden Inhalt in die Datei einfügen:

    #!/usr/bin/env nodejs
    var http = require('http');
    http.createServer(function (request, response) {
       response.writeHead(200, {'Content-Type': 'text/plain'});
       response.end('Hello World! Node.js is working correctly.\n');
    }).listen(8080);
    console.log('Server running at http://127.0.0.1:8080/');

    Speichern und beenden Sie die Datei.

    Machen Sie die Datei ausführbar:

    sudo chmod 755 hello.js

    PM2 installieren

    Verwenden Sie npm, um PM2 mit dem Befehl zu installieren:

    sudo npm install -g pm2

    Starten Sie das Beispielskript hello.js mit dem Befehl:

    sudo pm2 start hello.js

    Als root fügen Sie PM2 zu den Startup-Skripten hinzu, so dass es beim Neustart des Servers automatisch neu gestartet wird:

    sudo pm2 startup systemd

    Cloud Backup von IONOS

    Maximaler Schutz für Ihre Unternehmensdaten: Einfache Backups für Cloud-Infrastruktur, PCs und Smartphones, inklusive persönlichem Berater!

    Umfassender Schutz
    Einfache Wiederherstellung
    Schnelle Datenspeicherung

    Apache konfigurieren

    Um vom Web aus auf das Skript Node.js zuzugreifen, installieren Sie die Apache-Module proxy und proxy_http mit den Befehlen:

    sudo a2enmod proxy
    sudo a2enmod proxy_http

    Nach Abschluss der Installation starten Sie den Apache neu, damit die Änderungen wirksam werden:

    sudo service apache2 restart

    Als nächstes müssen Sie die Apache-Proxy-Konfigurationen hinzufügen. Diese Anweisungen müssen in den VirtualHost-Befehlsblock in der Hauptkonfigurationsdatei des Apache der Website eingefügt werden.

    Diese Apache-Konfigurationsdatei ist normalerweise /etc/apache2/sites-available/example.com.conf auf Ubuntu.

    Hinweis

    Der Speicherort und Dateiname der Apache-Konfigurationsdatei einer Website kann variieren.

    Bearbeiten Sie diese Datei mit einem Editor Ihrer Wahl, z.B. mit dem Befehl:

    sudo nano /etc/apache2/sites-available/example.com.conf

    Scrollen Sie durch die Datei, bis Sie den VirtualHost-Befehlsblock finden, der so aussehen wird:

    <VirtualHost *:80>
    ServerName example.com
        <Directory "/var/www/example.com/html">
        AllowOverride All
        </Directory>
    </VirtualHost>

    Fügen Sie Folgendes zum VirtualHost-Befehlsblock hinzu:

    ProxyRequests Off
       ProxyPreserveHost On
       ProxyVia Full
       <Proxy *>
          Require all granted
       </Proxy>
    
       <Location /nodejs>
          ProxyPass http://127.0.0.1:8080
          ProxyPassReverse http://127.0.0.1:8080
       </Location>

    Stellen Sie sicher, dass diese Zeilen außerhalb von Verzeichnisbefehlsblöcken platziert werden. Zum Beispiel:

    <VirtualHost *:80>
    ServerName example.com
    
       ProxyRequests Off
       ProxyPreserveHost On
       ProxyVia Full
       <Proxy *>
          Require all granted
       </Proxy>
    
       <Location /nodejs>
          ProxyPass http://127.0.0.1:8080
          ProxyPassReverse http://127.0.0.1:8080
       </Location>
    
        <Directory "/var/www/example.com/html">
        AllowOverride All
        </Directory>
    </VirtualHost>

    Speichern und beenden Sie die Datei, und starten Sie dann den Apache neu, damit die Änderungen wirksam werden:

    sudo services apache2 restart`

    Nach dem Neustart des Apache können Sie die Anwendung testen, indem Sie sie in einem Browser anzeigen. Du solltest die Nachricht sehen: "Hello World! Node.js funktioniert einwandfrei."


    Auf dem Laufenden bleiben?

    Jetzt für unseren Newsletter anmelden und gratis Online-Marketing Whitepaper für lokale Anbieter sichern!