GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So stellen Sie die Clojure-Webanwendung unter Debian 9 bereit

Clojure ist eine moderne Allzweck-Programmiersprache für die JVM, die sich auf die gleichzeitige Programmierung in Betriebssystemen konzentriert. Clojure ermöglicht es Ihnen, die vorhandene JVM-Infrastruktur zu nutzen, einschließlich Tools, Bibliotheken und Anwendungsserver.

Dieser Leitfaden führt Sie durch den Prozess der Bereitstellung einer einfachen Webanwendung in Clojure mit Supervisor und Nginx.

Anforderungen

  • Ein Server mit Ubuntu 16.04.
  • Ein Root-Passwort-Setup auf Ihrem Server.

Erste Schritte

Bevor Sie beginnen, wird empfohlen, Ihr Paket mit dem folgenden Befehl auf die neueste Version zu aktualisieren:

apt-get update -y
apt-get upgrade -y

Sobald alle Pakete aktualisiert sind, starten Sie Ihren Server neu, um alle diese Änderungen zu übernehmen.

Neustart

Installieren Sie als Nächstes einige erforderliche Pakete wie Git, Curl und Java mit dem folgenden Befehl auf Ihrem Server:

apt-get install git curl openjdk-8-jre-headless -y

Sobald alle erforderlichen Pakete installiert sind, können Sie die Version von JAVA mit dem folgenden Befehl überprüfen:

Java-Version

Sie sollten die JAVA-Version in der folgenden Ausgabe sehen

openjdk-Version „1.8.0_131“OpenJDK-Laufzeitumgebung (Build 1.8.0_131-8u131-b11-2-b11)OpenJDK 64-Bit-Server-VM (Build 25.131-b11, gemischter Modus)

Sobald Sie fertig sind, können Sie mit der Installation von Nginx und Supervisor fortfahren.

Nginx und Supervisor installieren

Standardmäßig sind Nginx und Supervisor im Ubuntu 16.04-Repository verfügbar. Sie können sie installieren, indem Sie einfach den folgenden Befehl ausführen:

apt-get install nginx supervisor -y

Starten Sie nach Abschluss der Installation den Nginx- und Supervisor-Dienst und ermöglichen Sie ihnen, beim Booten mit dem folgenden Befehl zu starten:

systemctl start nginx
systemctl start supervisor
systemctl enable nginx
systemctl enable supervisor

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Clojure-App herunterladen

Zuerst müssen Sie das Clojure-Beispielprojekt aus dem Git-Repository herunterladen. Sie können es ganz einfach mit dem Befehlszeilendienstprogramm git clone herunterladen, wie unten gezeigt:

git-Klon https://github.com/do-community/do-clojure-web.git

Der nächste Schritt besteht darin, dieses Clojure-Projekt mit Leiningen zu kompilieren und auszuführen. Leiningen ist ein Abhängigkeitsverwaltungs- und Build-Automatisierungstool, das zum Kompilieren der Clojure-App verwendet werden kann. Sie können es mit dem Curl-Befehl wie unten gezeigt herunterladen:

curl https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein -o /usr/bin/lein

Geben Sie als Nächstes dem heruntergeladenen Tool mit dem folgenden Befehl die richtigen Berechtigungen:

chmod 755 /usr/bin/lein

Führen Sie nun den folgenden Befehl aus, um das Closure-Projekt zu kompilieren:

cd do-clojure-web
lein uberjar

Sie sollten die folgende Ausgabe sehen:

WARNUNG:Sie werden derzeit als root ausgeführt; wahrscheinlich aus Versehen. Drücken Sie Strg-C zum Abbrechen oder Enter, um als Root fortzufahren. Legen Sie LEIN_ROOT fest, um diese Warnung zu deaktivieren. Leiningen wird jetzt nach /root/.lein/self-installs/leiningen-2.7.1-standalone.jar heruntergeladen ... % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktueller Dload-Upload Gesamtverbrauch Verbleibende Geschwindigkeit100 618 0 618 0 0 309 0 --:--:-- 0:00:02 --:--:-- 207100 14.6M 100 14.6M 0 0 326k 0 0:00:46 0:00:46 --:--:-- 279kAbrufen von lein-ring/lein-ring/0.8.13/lein-ring-0.8.13.pom von clojarsAbrufen von org/ clojure/clojure/1.2.1/clojure-1.2.1.pom von centralRetrieving org/clojure/data.xml/0.0.6/data.xml-0.0.6.pom von centralRetrieving org/clojure/pom.contrib/0.0. 25/pom.contrib-0.0.25.pom von centralRetrieving org/sonatype/oss/oss-parent/5/oss-parent-5.pom von centralRetrieving org/clojure/clojure/1.3.0/clojure-1.3.0. pom aus der Zentrale Abrufen von leinjacker/leinjacker/0.4.1/leinjacker-0.4.1.pom aus c lojarsOrg/clojure/core.contracts/0.0.1/core.contracts-0.0.1.pom von Central abrufenOrg/clojure/pom.contrib/0.0.26/pom.contrib-0.0.26.pom von Central abrufenOrg/clojure abrufen /core.unify/0.5.3/core.unify-0.5.3.pom von centralRetrieving org/clojure/clojure/1.4.0/clojure-1.4.0.pom von centralRetrieving org/clojure/clojure/1.2.1/clojure -1.2.1.jar vom zentralen Abruf von org/clojure/core.contracts/0.0.1/core.contracts-0.0.1.jar vom zentralen Abruf von org/clojure/data.xml/0.0.6/data.xml-0.0.6 .jar von CentralAbrufen von org/clojure/core.unify/0.5.3/core.unify-0.5.3.jar von CentralAbrufen von org/clojure/clojure/1.2.1/clojure-1.2.1.jar von Clojars

Sobald das Clojure-Projekt kompiliert ist, können Sie mit dem nächsten Schritt fortfahren.

Clojure-Web-App-Umgebung einrichten

Als nächstes müssen Sie eine Verzeichnisstruktur für die Clojure-Webanwendung erstellen. Sie können dies mit dem folgenden Befehl tun:

mkdir -p /var/www/html/do-clojure-web/app/db

Als nächstes kopieren Sie die Anwendungsdateien von Clojure in das obige Verzeichnis:

cp /root/do-clojure-web/target/do-clojure-web-0.1.0-standalone.jar /var/www/html/do-clojure-web/app/

Geben Sie als Nächstes mit dem folgenden Befehl die richtigen Berechtigungen für das Clojure-App-Verzeichnis:

chown -R www-data:www-data /var/www/html/do-clojure-web/

Erstellen Sie als Nächstes mit dem folgenden Befehl eine Symbolink der Clojure-Webanwendung:

cd /var/www/html/do-clojure-web/app/
ln -s do-clojure-web-0.1.0-standalone.jar do-clojure-web.jar

Die Clojure-Web-App ist jetzt einsatzbereit. Sie können mit dem folgenden Befehl überprüfen, ob es ausgeführt wird oder nicht:

java -jar do-clojure-web.jar

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

2017-10-01 10:30:48.349:INFO:oejs.Server:jetty-7.x.y-SNAPSHOT2017-10-01 10:30:48.590:INFO:oejs.AbstractConnector:Started [email protected]:5000 

Nginx und Supervisor konfigurieren

Als Nächstes müssen Sie Supervisor konfigurieren, um Clojure-Anwendungen als Dienst zu verwalten. Sie können dies tun, indem Sie die Datei do-clojure-web.conf im Supervisor-Konfigurationsverzeichnis erstellen, wie unten gezeigt:

nano /etc/supervisor/conf.d/do-clojure-web.conf

Fügen Sie die folgenden Zeilen hinzu:

[program:do-clojure-web]command=/usr/bin/java -jar do-clojure-web.jardirectory=/var/www/html/do-clojure-web/appuser=www-dataautostart=trueautorestart =truestartretries=3redirect_stderr=truestdout_logfile=/var/log/log/do-clojure-web.app.log

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als Nächstes müssen Sie Nginx auch für die Verwendung als Reverse-Proxy konfigurieren. Weil die Clojure-Webanwendung nur Verbindungen vom localhost akzeptiert. Sie können mit Nginx von einem entfernten Standort aus darauf zugreifen. Dazu müssen Sie die Nginx-Standardkonfigurationsdatei konfigurieren:

nano /etc/nginx/sites-available/default

Ändern Sie die Datei wie unten gezeigt:

upstream http_backend { server 127.0.0.1:5000; keepalive 32;}server {listen 80 default_server; hören [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; Servername _; Standort / { Proxy_Pass http://http_backend; Proxy_http_Version 1.1; proxy_set_header Verbindung ""; Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; Proxy_set_header Host $http_host; access_log /var/log/do-clojure-web.access.log; error_log /var/log/do-clojure-web.error.log; }}

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und starten Sie dann den Nginx- und Supervisor-Dienst neu, um alle Änderungen zu übernehmen:

systemctl restart nginx
systemctl restart supervisor

Sie können den Status von Nginx und Supervisor mit dem folgenden Befehl überprüfen:

Systemctl Status Supervisor

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

? supervisor.service – Supervisor-Prozessleitsystem für UNIX Geladen:geladen (/lib/systemd/system/supervisor.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mo 2017-10-02 10:19:32 SOMMERZEIT; Vor 22 Minuten Dokumente:http://supervisord.org Haupt-PID:397 (Supervisord) Aufgaben:19 (Limit:4915) CGroup:/system.slice/supervisor.service ??397 /usr/bin/python /usr/bin/ Supervisord -n -c /etc/supervisor/supervisord.conf ??446 /usr/bin/java -jar do-clojure-web.jarOct 02 10:19:32 debian systemd[1]:Supervisor-Prozesssteuerungssystem für UNIX gestartet .Oct 02 10:19:39 Debian Supervisord[397]:2017-10-02 10:19:39,656 CRIT Supervisor läuft als Root (kein Benutzer in der Konfigurationsdatei)Oct 02 10:19:39 Debian Supervisord[397]:2017 -10-02 10:19:39,665 INFO Enthaltene zusätzliche Datei "/etc/supervisor/conf.d/do-clojure-web.conf" während pOct 02 10:19:39 Debian Supervisord[397]:2017-10-02 10:19:39,821 INFO RPC interface 'supervisor' initialized Oct 02 10:19:39 debianSupervisord[397]:2017-10-02 10:19:39,823 CRIT Server 'unix_http_server' läuft ohne HTTP-Authentifizierung checkinOct 02 10:19:39 Debian Supervisord[397]:2017-10-02 10:19:39,825 INFO Supervisord gestartet mit PID 397Oct 02 10:1 9:40 Debian Supervisord[397]:2017-10-02 10:19:40,890 INFO erzeugt:'do-clojure-web' mit PID 446Oct 02 10:19:41 Debian Supervisord[397]:2017-10-02 10 :19:41,893 INFO Erfolg:do-clojure-web ist in den Zustand RUNNING gegangen, der Prozess ist seit aktiv geblieben
systemctl status nginx

Ausgabe:

? nginx.service – Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server Geladen:geladen (/lib/systemd/system/nginx.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mo 2017-10-02 :19:35 EDT; vor 26 min Dokumente:man:nginx(8) Prozess:425 ExecStart=/usr/sbin/nginx -g daemon on; master_process an; (code=beendet, status=0/SUCCESS) Prozess:401 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process an; (code=exited, status=0/SUCCESS) Main PID:427 (nginx) Tasks:2 (limit:4915) CGroup:/system.slice/nginx.service ??427 nginx:master process /usr/sbin/nginx - g Dämon an; master_process an; ??429 nginx:worker processOkt 02 10:19:32 debian systemd[1]:Starten eines Hochleistungs-Webservers und eines Reverse-Proxy-Servers...Okt 02 10:19:35 debian systemd[1]:nginx.service:Fehler beim Lesen der PID aus Datei /run/nginx.pid:Ungültiges Argument

Zugriff auf die Clojure-Web-App

Sobald alles richtig konfiguriert ist, ist es an der Zeit, über einen Webbrowser auf die Clojure-Webanwendung zuzugreifen.

Öffnen Sie Ihren Webbrowser und geben Sie die URL http://Ihre-IP-Adresse ein. Sie werden wie unten gezeigt auf die Startseite der Clojure-Webanwendung weitergeleitet:

Klicken Sie nun auf Standort hinzufügen klicken, sollten Sie das folgende Bild sehen:

Geben Sie hier die Werte im x-Wert- und im y-Wert-Feld ein und klicken Sie dann auf den Standort übermitteln Taste. Sie können jetzt Ihre eingereichten Standorte anzeigen, indem Sie auf Alle Standorte anzeigen klicken Taste. Sie sollten das folgende Bild sehen:

Schlussfolgerung

Im obigen Artikel haben wir gelernt, wie man die Clojure-Webanwendung mit Supervisor und lein bereitstellt. Wir haben auch gelernt, wie man von einem entfernten Standort auf eine Clojure-Webanwendung zugreift, indem man Nginx als Reverse-Proxy-Server einrichtet. Ich hoffe, Sie können Ihre benutzerdefinierte Anwendung jetzt problemlos mit Clojure, Supervisor und lein bereitstellen. Fühlen Sie sich frei, alles zu fragen, wenn Sie Fragen haben.


Debian
  1. So installieren Sie den Google Chrome-Webbrowser unter Debian 9

  2. So installieren Sie die Cockpit-Webkonsole unter Debian 10

  3. So installieren Sie Matomo Web Analytics unter Debian 9

  4. So installieren Sie das Django Web Application Framework unter Debian 10

  5. Debian – Wie kräuselt man den gesamten Webseiteninhalt?

So installieren Sie Flatpak unter Debian 11 Bullseye

So installieren Sie den Opera-Webbrowser unter Debian 9 Stretch

So installieren Sie den Chromium-Webbrowser unter Debian 10

So installieren Sie Netdata unter Debian 10

So installieren Sie den Apache-Webserver unter Debian 11

So installieren Sie Team Viewer unter Debian 11