Es scheint selbstverständlich zu sein, dass Sie Webrick nicht als Produktionsserver verwenden dürfen, aber ich kann nirgendwo etwas finden, in dem erwähnt wird, warum. Der Konsens scheint zu sein: "Webrick ist in Ordnung für die Entwicklung, aber Thin oder Unicorn ist die Wahl für die Produktion, Zeitraum."
Ich habe die Homepage von Thin Server nachgeschlagen und es geht um Anfragen / Sekunde, aber ich verstehe das Diagramm nicht wirklich, da es keine Anmerkungen gibt.
Kann mir jemand mitteilen, warum ich im Vergleich zu Webrick Thin oder Unicorn verwenden sollte? Hat die Verwendung von Webrick für die Entwicklung auch Vorteile? Ich benutze Webrick, da es mit Schienen geliefert wird, und ich denke, es sollte einen Grund geben, warum es Standard ist.
Ich benutze übrigens Heroku.
Antworten:
Ein paar wichtige Gründe
Wenn ich Weiterleitungen / Umschreibungen erwähne, beziehe ich mich auf die Tatsache, dass Sie bei Verwendung von Webrick Umschreibungen auf einer anderen Ebene (Rack, Sinatra, Rails, benutzerdefinierter Webrick-Code usw.) durchführen müssen. Dies erfordert, dass Sie zusätzliche Ruby-Handler starten, um Ihren Umschreibcode auszuführen. Für eine Site mit geringem Datenverkehr kann dies in Ordnung sein, da vorgewärmte Prozesse möglicherweise bereits nichts tun. Für eine Site mit höherem Datenverkehr bedeutet dies jedoch eine zusätzliche Belastung des Servers für etwas, das die Front-End-Server (Apache, Nginx usw.) ohne das Hochfahren von Ruby * verarbeiten können, und wahrscheinlich um Größenordnungen schneller.
* Wenn Sie beispielsweise hinter einem Load Balancer ausgeführt werden, können Sie den gesamten Umschreibungsverkehr an einen Server weiterleiten, auf dem Ruby nicht installiert ist, und Ihre Hauptserver können nur den primären Verkehr verwalten. Dieser Umschreibungsverkehr kann auf Änderungen der Website für SEO oder ähnliches zurückzuführen sein. Ein anderer Fall wäre eine Site mit mehreren Komponenten, und möglicherweise ist ein Abschnitt Rails, ein anderer PHP, und für beide sind Umschreibungen erforderlich (dh es werden alte PHP-Pfade zu Rails neu geschrieben).
quelle
WEBrick kann auch keine längeren URIs verarbeiten. Wenn diese 2083 Zeichen überschreiten, tritt ein Absturz auf. Thin hat diese Probleme nicht, was es überlegen gemacht hat - bereits in der Entwicklung.
quelle
Ich mag es nicht wirklich, einfache Dinge zu komplizieren und vorzeitig zu optimieren. WEBrick kann in der Produktion verwendet werden, sofern es sich um eine Website mit geringem Datenverkehr handelt. Die meisten Anwendungen sind.
Wenn Ihre Site etwas tut, das Zeit braucht, z. B. E-Mails versendet oder PDF-Dateien generiert, sollten Sie WEBrick als Multithreading-Programm verwenden . Sie möchten mehrere Anfragen gleichzeitig bearbeiten.
quelle
In der Vergangenheit gab es einige Sicherheitsprobleme, aber der Hauptgrund scheint zu sein, dass es im Vergleich zu den Servern, die für die Produktion vorgesehen sind, sehr langsam ist.
quelle
Die größte Schwäche von Webrick im Produktionsmodus besteht darin, dass es sich um einen Single-Threaded-Webserver mit einem Prozess handelt, was bedeutet, dass nur eine einzige http-Anforderung gleichzeitig bearbeitet werden kann.
quelle