Dies ist ein Follow-up zu meiner Frage hier . Ich habe einen Home-Server eingerichtet (nur meinen anderen Laptop mit Ubuntu und Nginx) und ich möchte Clojure-Dateien bereitstellen.
Ich bitte um Hilfe, um zu verstehen, wie dieser Prozess funktioniert. Es tut mir leid, an diesem Punkt bin ich verwirrt und ich denke, ich muss neu beginnen. Ich stelle eine neue Frage, weil ich nginx
nicht lein ring server
verwenden möchte, wie in der Antwort für diese Frage vorgeschlagen.
Zuerst habe ich mit leiningen ein Projekt guestbook
gestartet und ich habe lein ring server
ausgeführt und ich sehe "Hello World" bei localhost:3000
. Soweit ich verstehe, hat das nichts mit nginx zu tun!
Wie kommt nginx in diesen Prozess? Zuerst habe ich versucht, einen Proxy-Server mit Nginx zu erstellen, und das hat auch funktioniert, aber ich wusste nicht, wie Clojure-Dateien mit diesem Setup dienen.
Das habe ich in meiner Datei nginx.conf, die von dieser Antwort angepasst wurde:
%Vor% Also möchte ich meine Domain example.com
(nicht localhost) verwenden; Wie gehe ich dabei vor?
BEARBEITEN
Laut @ noisesmith's Kommentar werde ich mich entscheiden, mitzugehen Lein Uberjar Option. Wie hier hier erklärt wird, scheint es sehr einfach zu sein:
%Vor%Können Sie mir auch die richtige Dokumentation geben, wie ich dieses Uberjar mit nginx verwenden kann?
Für den Anfang verwenden Sie lein
nicht, um Dinge in der Produktion auszuführen. Sie können lein uberjar
verwenden, um eine JAR-Datei mit allen bereitzustellenden Deps zu erstellen, und java -jar
, um die App vom resultierenden JAR auszuführen. Es gibt auch die Möglichkeit, lein ring uberwar
auszuführen, um ein Kriegsarchiv zu erstellen, das innerhalb von Tomcat ausgeführt wird, was einige andere Vorteile bietet (wie Log-Rotation und Integration mit /etc/init.d als Dienst etc. auf den meisten Linux-Systemen).
nginx
befindet sich vor Ihrer App auf Port 80. Es wird den Inhalt durch die Proxys Ihrer App bereitstellen. Dies ist nützlich, da nginx viele Funktionen (insbesondere bezüglich der Sicherheit) bietet Sie müssen dann nicht in Ihrer eigenen App implementieren, einschließlich optionaler Integration mit https und selinux Integration. Die Verwendung von nginx vor Ihrer App verhindert auch, dass Sie Java als root ausführen müssen (normalerweise kann nur der Benutzer root Port 80 verwenden). Außerdem können Sie statische Ressourcen direkt von nginx bereitstellen lassen, anstatt sie von Ihrer App aus bereitzustellen.
Bitte versuchen Sie das Nginx-Clojure-Modul . Sie können clojure Ringhandler mit Nginx ohne Java Web Server ausführen, z. Anlegesteg.