Ich habe herumgespielt und andere Optionen für den WEBrick-Server von Rails evaluiert und Thin war das schmerzloseste und sauberste Ding, das sehr gut funktioniert hat!
Welche dieser Mongrel, Thin, WEBrick und Passenger würdest du empfehlen und warum? Gibt es irgendwelche Skalierbarkeitsvorteile (clusterfreundlich oder Konfigurationen, die mit irgendeiner Art von Skalierung umgehen können), die mit irgendeinem dieser Server geliefert werden. Oder sollte die Skalierbarkeit sogar ein Parameter sein, während sie bewertet werden?
Dipak hat bereits die Hälfte Ihrer Frage beantwortet, aber lassen Sie mich etwas näher erläutern. (Ich bin einer der Autoren von Phusion Passenger.)
Wenn es um die Skalierbarkeit geht, gibt es keinen großen Unterschied. Sie arbeiten alle sehr ähnlich in der Produktion, sie skalieren alle auf die gleiche Weise und alle Probleme, denen Sie begegnen, werden höchstwahrscheinlich von Ihrer App oder von Rails verursacht. Tja, außer für WEBrick, das du eigentlich nicht in der Produktion verwenden solltest. Sie können einen Unterschied in Hallo Welt Benchmarks sehen, aber das wird alles sein. In der Produktion wird die meiste Zeit in der App verbracht, so dass kleine Geschwindigkeitsunterschiede, die in Hello World Benchmarks sichtbar sind, komplett unsichtbar werden.
Es gibt jedoch einige Feinheiten, die Sie beachten sollten.
Je nach Art Ihrer Anwendung ist das E / A-Modell möglicherweise wichtig oder nicht wichtig. Mischling, Thin, Unicorn, sie sind alle Multi-Prozess Single-Threaded. Dies funktioniert hervorragend für traditionelle Web-Apps, die in der lokalen Datenbank nach Inhalten suchen und etwas rendern, aber sie sind für Apps, die viele HTTP-API-Aufrufe durchführen oder auf I / O viel warten müssen. Warum Rails 4 Live Streaming ist eine große Sache erklärt das im Detail.
Phusion Passenger ist auch Multi-Prozess Single-Threading, aber Phusion Passenger Enterprise unterstützt Multithreading. Phusion Passenger Enterprise ist eine kommerzielle Variante des Open-Source-Phusion-Passagiers mit einer Vielzahl von Funktionen, die für große Produktionsumgebungen geeignet sind.
Wähle also die Option, die für dein Szenario am besten ist.
Am einfachsten ist es für die Produktion, Apache und mod_rails (Passagier) einzurichten. Wenn Sie die neue Hitze verwenden möchten, können Sie nginx und Passagiere einen Wirbel geben.
Für die Entwicklung ist Mongrel normalerweise am einfachsten zu arbeiten. Die meisten Windows-IDEs (RadRails, Netbeans) geben Ihnen die Wahl, Webrick oder Mongrel für die Entwicklungsarbeit zu verwenden und Sie können die Server von der IDE selbst steuern.
Aktualisieren
Vier Optionen
Es gibt wirklich vier Möglichkeiten, naja, plus WEBrick, aber das wäre eine ungewöhnliche Wahl für einen Produktionsserver. Etwa in der Reihenfolge der zunehmenden Komplexität ...
nginx + Mischling nginx + Passagier Apache + Mischling Apache + Passagier (Es gibt Phusion Passenger Standalone, aber das ist wirklich ein Nginx + Passagier zusammen kompiliert, also ich zähle es nicht, obwohl es eine gute Option für einige Leute sein könnte.)
Eine größere Site kann dann spezielle Schicht-7-Hardware (NetScaler, F5, ...) vor den Servern hinzufügen.
Thin ist so einfach wie ein Edelstein "dünn" für Entwicklung und Produktion
Tags und Links ruby-on-rails mongrel scalability passenger thin