2010-09-09 13 views
13

Jest to pytanie początkujących wokół nginx i cienkie w środowisku rails. W czytaniu/uczeniu się na szynach często słyszę o nginxie i cienkim, będącym znakomitą kombinacją dla witryny railsowej. Czytając opisy każdego z nich, opisują siebie jako serwery internetowe, więc jestem nieco zdezorientowany tym, co kombinacja przynosi do stołu. Jeśli ktokolwiek mógłby krótko opisać, czym są i jak się uzupełniają, byłbym bardzo wdzięczny.Rozróżnianie między nginx i cienkim

Dzięki!

Odpowiedz

2

Mówiąc o ignorancji (nigdy nie używałem cienkiego), normalne jest mieszanie nginx i serwera aplikacji razem, używanie nginx do obsługi statycznych treści i działanie jako odwrotne proxy dla serwera aplikacji.

To sprawia, że ​​łatwo mieszają śmiesznie szybką statyczną zawartość serwującą z serwerem aplikacji wyboru (który waha się między językami programowania), wszystkie pochodzą z tego samego adresu: port.

25

Typowa mała wdrażanie aplikacji będzie mieć Nginx (lub Apache) oraz garść cienka (lub Mongrel, Unicorn, etc) serwery uruchomione na jednym komputerze.

Nginx odbiera każdą prośbę. Następnie obsługuje bezpośrednio pliki statyczne (css, js, images, cached stuff). Jeśli żądanie wymaga przetworzenia, następnie przekazuje żądanie do procesu railsowego (Thin).

ten sposób Państwa (stosunkowo) powolne serwery aplikacyjne są uwolnione od obsługujących pliki statyczne, a Twój serwer WWW jest dostarczanie rodzaj równoważenia obciążenia.

Zaletą Nginx/Thin na coś takiego jak Apache/Mongrel jest to, że Nginx/Thin może komunikować się bezpośrednio przez gniazdo unix, usuwając narzut związany z komunikacją za pośrednictwem stosu TCP/IP.

+10

Aby bardziej bezpośrednio odpowiedzieć na pytanie: Nginx jest serwerem WWW. Obsługuje pliki statyczne i kieruje niestatyczne żądania do serwerów aplikacji. Thin jest serwerem aplikacji, w rzeczywistości przetwarza żądania za pomocą aplikacji Rails/Rack. –

4

Cienki jest serwer aplikacji podczas Nginx jest serwerem WWW.

Od http://www.javaworld.com/javaqa/2002-08/01-qa-0823-appvswebserver.html

Serwer aplikacji naraża logiki biznesowej do aplikacji klienckich za pośrednictwem różnych protokołów, w tym ewentualnie HTTP. Podczas gdy serwer Web zajmuje się głównie wysyłania HTML do wyświetlania w przeglądarce internetowej , serwer aplikacja zapewnia dostęp do logiki biznesowej do wykorzystania przez aplikacje klient. Program użytkowy może korzystać z tej logiki tak, jak nazwałby metodę na obiekcie (lub funkcji w świecie proceduralnym).

Powiązane problemy