Warum müssen wir Nginx mit Thin auf Produktions-Setup installieren, als Thin ist selbst ein Webserver. In jedem Blogbeitrag benutzen Leute ruby + rails + nginx + thin?Warum brauchen wir Nginx mit dünnen Produktionseinstellungen?
Antwort
Wie bereits erwähnt von Michael nginx Salden dünn (was immer das bedeutet). Aber ein weiterer Grund für die Verwendung nginx vor jedem Ruby-Server statische Dateien dienen (wenn Sie das Seite-Caching verwenden, können sie auch von nginx bedient werden), was bedeutet, Anfragen nicht sogar Ihren Rubin App berühren, und erhöhen eine Menge Ihre Leistung. Auch wenn es scheint, die beliebte Wahl in der Ruby/Rails-Community zu sein, gibt es andere Alternativen wie Apache.
Ngnix wird verwendet, um dünne Balance zu laden. Vielleicht möchten Sie stattdessen Unicorn verwenden. Mehr zu diesem Thema hier: http://cmelbye.github.io/2009/10/04/thin-vs-unicorn.html
Thin und all Ruby-Server sind langsamer als Server in der Programmiersprache C geschrieben - z.B. Nginx und Apache, wenn dienen statische Dateien - Bilder, gerenderte HTML usw.
Nginx leicht ist und große Parallelität Unterstützung hat. Wenn Sie eine lange Datenübertragung wie Upload, Download oder Slow Client haben, zahlt sich das aus. Statt eines schweren Ruby-Prozesses, der im Speicher hängt und auf das Ende der Übertragung wartet, haben Sie einen leichten Nginx-Prozess, der den Upload nur dann in einen Ruby-Prozess übergibt, nachdem die Datei hochgeladen wurde. Oder erhalten Sie eine Antwort von Rails, stoppen Sie die Verarbeitung von Rails und führen Sie die Antwort so lange aus, wie es für den Client erforderlich ist.
nicht immer möglich. Thin ermöglicht lang andauernde Verbindungen, Streaming usw. Unicorn erlaubt das auch nicht, es hängt also stark davon ab, was Ihre App/Ihr Backend benötigt. –