So installierst du das Sails.js Framework auf Ubuntu 22.04

Sails ist ein Echtzeit-MVC-Framework für die Erstellung produktionsreifer Node.js-Anwendungen für Unternehmen. Es ist ein hervorragendes Werkzeug, um Websites schnell zu erstellen und zu prototypisieren. Es baut auf Node JS und Express JS auf, sodass alles, was in NodeJS und Express anwendbar ist, auch mit Sails JS funktioniert. Es unterstützt skalierbare WebSockets, eine serviceorientierte Architektur und mehrere Datenspeicher im selben Projekt und bietet grundlegende Sicherheitsfunktionen und eine rollenbasierte Zugriffskontrolle.

In diesem Beitrag zeige ich dir, wie du Sails.js mit Apache als Reverse Proxy auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Erste Schritte

Bevor du beginnst, solltest du deine Pakete auf die neueste Version aktualisieren. Du kannst alle Pakete aktualisieren, indem du den folgenden Befehl ausführst:

apt update -y
apt upgrade -y

Sobald alle Pakete aktualisiert sind, installierst du die anderen erforderlichen Abhängigkeiten mit dem folgenden Befehl:

apt-get install curl wget gnupg2 -y

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Node.js installieren

Als Nächstes musst du Node.js und NPM installieren, um eine Sails.js-Anwendung zu erstellen. Füge zunächst das Node.js-Repository mit dem folgenden Befehl hinzu:

curl -sL https://deb.nodesource.com/setup_16.x | bash -

Sobald das Repository hinzugefügt ist, installierst du das Node.js-Paket mit dem folgenden Befehl:

apt-get install nodejs -y

Nach der Installation kannst du die Node.js-Version mit folgendem Befehl überprüfen:

node --version

Du erhältst die Node.js-Version in der folgenden Ausgabe:

v16.17.1

Sails.js installieren

Als nächstes musst du Sails.js auf deinem Server installieren. Du kannst Sails mit dem Node Package Manager installieren.

npm -g install sails

Sobald Sails installiert ist, kannst du es mit dem folgenden Befehl überprüfen:

sails --version

Du erhältst die Sails-Version in der folgenden Ausgabe:

1.5.3

Eine Sails.js-Anwendung erstellen

Nachdem wir Sails installiert haben, erstellen wir eine einfache Sails-Anwendung mit dem folgenden Befehl:

sails new sails-app

Du solltest die folgende Ausgabe erhalten:

 Choose a template for your new Sails app:
 1. Web App  ·  Extensible project with auth, login, & password recovery
 2. Empty    ·  An empty Sails app, yours to configure
 (type "?" for help, or <CTRL+C> to cancel)
? 2
 info: Installing dependencies...
Press CTRL+C to cancel.
(to skip this step in the future, use --fast)
 info: Created a new Sails app `sails-app`!

Du kannst alle von Sails erstellten Dateien mit dem folgenden Befehl überprüfen:

ls sails-app

Du solltest die folgende Ausgabe sehen:

api  app.js  assets  config  Gruntfile.js  node_modules  package.json  package-lock.json  README.md  tasks  views

Wechsle als Nächstes in das Verzeichnis deiner Sails-Anwendung und starte die Anwendung mit dem folgenden Befehl:

cd sails-app
sails lift

Du solltest die folgende Ausgabe sehen:

 info: Starting app...

 info: 
 info:                .-..-.
 info: 
 info:    Sails              <|    .-..-.
 info:    v1.5.3              |\
 info:                       /|.\
 info:                      / || \
 info:                    ,'  |'  \
 info:                 .-'.-==|/_--'
 info:                 `--'-------' 
 info:    __---___--___---___--___---___--___
 info:  ____---___--___---___--___---___--___-__
 info: 
 info: Server lifted in `/root/sails-app`
 info: To shut down Sails, press  + C at any time.
 info: Read more at https://sailsjs.com/support.

debug: -------------------------------------------------------
debug: :: Sun Sep 25 2022 05:43:59 GMT+0000 (Coordinated Universal Time)

debug: Environment : development
debug: Port        : 1337
debug: -------------------------------------------------------

Drücke die Tastenkombination STRG+C, um die Anwendung zu beenden. Wir werden eine systemd-Dienstdatei erstellen, um die Sails-Anwendung zu starten und zu verwalten.

Eine Systemd-Dienstdatei für Sails.js erstellen

Als Nächstes musst du eine systemd-Dienstdatei erstellen, um die Sails.js-Anwendung zu verwalten. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/sails-app.service

Füge die folgenden Zeilen hinzu:

[Unit]
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/sails-app
ExecStart=/usr/bin/sails lift
Restart=on-failure

[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei und lade dann den systemd-Daemon neu, um die Änderungen zu übernehmen:

systemctl daemon-reload

Starte als Nächstes den Sails.js-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:

systemctl start sails-app
systemctl enable sails-app

Jetzt kannst du den Status der Sails-Anwendung mit dem folgenden Befehl überprüfen:

systemctl status sails-app

Du solltest die folgende Ausgabe erhalten:

? sails-app.service
     Loaded: loaded (/etc/systemd/system/sails-app.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 05:44:42 UTC; 6s ago
   Main PID: 2896 (node)
      Tasks: 22 (limit: 4579)
     Memory: 159.2M
        CPU: 3.676s
     CGroup: /system.slice/sails-app.service
             ??2896 node /usr/bin/sails lift
             ??2903 grunt "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">

Sep 25 05:44:44 ubuntu2204 sails[2896]:  info:  ____---___--___---___--___---___--___-__
Sep 25 05:44:44 ubuntu2204 sails[2896]:  info:
Sep 25 05:44:44 ubuntu2204 sails[2896]:  info: Server lifted in `/root/sails-app`
Sep 25 05:44:44 ubuntu2204 sails[2896]:  info: To shut down Sails, press  + C at any time.
Sep 25 05:44:44 ubuntu2204 sails[2896]:  info: Read more at https://sailsjs.com/support.
Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: -------------------------------------------------------
Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: :: Sun Sep 25 2022 05:44:44 GMT+0000 (Coordinated Universal Time)
Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Environment : development
Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Port        : 1337
Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: -------------------------------------------------------

Zu diesem Zeitpunkt ist die Sails-Anwendung gestartet und lauscht auf Port 1337. Du kannst jetzt mit dem nächsten Schritt fortfahren.

Apache als Reverse Proxy für Sails.js konfigurieren

Es ist eine gute Idee, Apache als Reverse Proxy für den Zugriff auf die Sails-Anwendung zu konfigurieren. Installiere zunächst den Apache-Server mit dem folgenden Befehl:

apt install apache2 -y

Sobald das Apache-Paket installiert ist, erstellst du mit dem folgenden Befehl eine Konfigurationsdatei für den virtuellen Apache-Host:

nano /etc/apache2/sites-available/sails.conf

Füge die folgenden Zeilen ein:

<VirtualHost *:80>
    ServerName sailsapp.example.com

    ServerAdmin webmaster@example.com
    DocumentRoot /root/sails-app

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <LocationMatch  "^/(?!js|css|media)" >
            ProxyPass   http://127.0.0.1:1337
            ProxyPassReverse   http://127.0.0.1:1337
    </LocationMatch>

    <Location "/dist/">
            ProxyPass !
    </Location>

    RewriteEngine On
    RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
    RewriteCond %{QUERY_STRING} transport=websocket    [NC]
    RewriteRule /(.*)           ws://localhost:1337/$1 [P,L]
</VirtualHost>

Speichere und schließe die Datei und aktiviere den virtuellen Sails-Host mit dem folgenden Befehl:

a2ensite sails.conf

Als Nächstes aktivierst du andere Apache-Module mit dem folgenden Befehl:

a2enmod headers proxy_http xml2enc proxy ssl proxy_wstunnel rewrite proxy_ajp deflate proxy_balancer proxy_connect proxy_html

Starte anschließend den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Du kannst nun den Status des Apache-Dienstes mit folgendem Befehl überprüfen:

systemctl status apache2

Du solltest die folgende Ausgabe erhalten:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 05:46:54 UTC; 2s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 3986 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 3990 (apache2)
      Tasks: 55 (limit: 4579)
     Memory: 6.8M
        CPU: 90ms
     CGroup: /system.slice/apache2.service
             ??3990 /usr/sbin/apache2 -k start
             ??3991 /usr/sbin/apache2 -k start
             ??3992 /usr/sbin/apache2 -k start

Sep 25 05:46:54 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

Derzeit ist der Apache-Webserver installiert und als Reverse-Proxy für die Sails.js-Anwendung konfiguriert. Du kannst jetzt mit dem nächsten Schritt fortfahren.

Zugriff auf die Sails.js Web UI

Du kannst nun deinen Webbrowser öffnen und über die URL http://sailsapp.example.com auf die Sails.js-Weboberfläche zugreifen . Auf dem folgenden Bildschirm solltest du die Sails.js-Weboberfläche sehen:

Fazit

Herzlichen Glückwunsch! Du hast Sails.js erfolgreich mit Apache als Reverse Proxy auf Ubuntu 22.04 installiert. Du kannst jetzt eine skalierbare und produktionsreife Webanwendung mit dem Sails.js-Framework hosten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …