7 Stimmen

Mehrere Ruby-Versionen auf einem Webserver?

Das Ideal

Mit rvm wäre es großartig, mehrere Ruby-Versionen auf einem Webserver zu haben, und durch eine Art von Server-Konfiguration in der Lage sein, Ruby-Versionen zu verschiedenen Rails/Sinatra/etc-Anwendungen auf einer projektbezogenen Basis zuzuweisen.

Aus der Dokumentation von rvm weiß ich, dass Passenger nur mit einem Ruby gleichzeitig funktioniert :(

Der Kompromiss

Andernfalls wäre es schön, zumindest eine Möglichkeit zu finden, Projekte einem Ruby 1.8 oder einem Ruby 1.9 Interpreter zuzuordnen. Ich habe gelesen, dass die Verwendung von Nginx als Reverse Proxy den Betrieb von Apache und Nginx auf demselben Rechner ermöglicht. Wäre es dann möglich, Apache+Passenger mit einem Ruby und Nginx+Passenger mit einem anderen zu betreiben? Vielleicht etwas anderes als Passenger mit Nginx verwenden?

Bin ich auf dem falschen Dampfer?

Habe ich eine gute Lösung für dieses Problem übersehen? Befinde ich mich in einer alptraumhaften Konfigurationssituation? Ist das, was ich will, überhaupt machbar, oder ist es notwendig, eine weitere Box zu betreiben, um eine separate Ruby-Version auszuführen?

0 Stimmen

Ich bin mir nicht sicher, wie praktikabel das ist, aber ein separates Benutzerkonto für jeden Prozess, den Sie unter jedem verschiedenen Ruby laufen lassen wollen (oder vielleicht nur 1 Benutzer pro Ruby?), wäre ein guter Anfang.

0 Stimmen

Ist Virtualisierung eine Option? Wenn es einen Grund gibt, warum Sie nicht mehrere Ruby-Versionen ausführen können, könnten Sie einen virtuellen Server mit der anderen Version betreiben, so dass jede Betriebssysteminstallation nur eine Version hat.

2voto

ecleel Punkte 11486

Siehe diesen Beitrag: Phusion Passenger und die Ausführung mehrerer Ruby-Versionen vom offiziellen Phusion-Blog. Es ist das Problem durch die Verwendung von Passenger Standalone als Reverse-Proxy zu lösen.

1voto

Konstantin Haase Punkte 25071

Sie können Thin oder Unicorn mit Nginx verwenden. Sie könnten dann ein God-Skript oder ein anderes Startskript schreiben, um die Ruby-Version pro Projekt einzustellen (oder einfach Thin/Unicorn manuell starten).

0 Stimmen

Wenn Sie weitere Fragen zu RVM haben, gibt es Leute, die bereit sind, 24/7 im #rvm-Kanal auf freenode zu helfen: webchat.freenode.net/?channels=rvm .

1voto

yfeldblum Punkte 64211

Mehrere kleine virtuelle Maschinen verwenden?

0 Stimmen

An meiner Stelle würde ich eine neue VM/Slice für 1.9 einrichten und die Anwendungen dorthin migrieren.

0voto

Maxem Punkte 2604

Wie wäre es, wenn Sie alle Ihre Projekte (oder zumindest die auf einem Server) auf der gleichen Ruby-Version halten? Sei es eine alte Version zu verwenden oder alte Projekte zu aktualisieren?

Ich denke, auf diese Weise haben Sie die wenigsten Probleme.

0 Stimmen

Weil es nicht sehr wünschenswert ist, bei Ruby 1.8 zu bleiben. Und weil nicht alles, was auf der Box läuft, von uns ist und wir nicht die ganze Zeit damit verbringen können, Redmine 1.9 kompatibel zu machen (zum Beispiel). Außerdem wäre es, zumindest im Idealfall, wirklich schön, Projekte auf dem Ruby laufen zu lassen, für den sie ursprünglich geschrieben wurden. Ich meine, mit rvm hat der Server diese Rubies da liegen, es wäre schön, wenn man sie jedem Projekt zur Verfügung stellen könnte!

0voto

corprew Punkte 1981

Der Kompromiss ist möglich. Es gibt verschiedene Möglichkeiten, aber die einfachste ist wahrscheinlich ein Reverse Proxy, kombiniert mit so vielen chroot Ruby+Webserver+Rails-Installationen, wie Sie es für richtig halten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X