Различение между nginx и тонким - PullRequest
13 голосов
/ 09 сентября 2010

Это вопрос новичка о nginx и тонкой среде рельсов.При чтении / обучении на рельсах я часто слышу о том, что nginx и thin - отличное сочетание для рельсового сайта.Читая описания каждого из них, они оба описывают себя как веб-серверы, поэтому я немного запутался в том, что комбинация приносит на стол.Если бы кто-нибудь мог кратко описать, что они из себя представляют и как они дополняют друг друга, я был бы очень признателен.

Спасибо!

Ответы [ 3 ]

25 голосов
/ 09 сентября 2010

Типичное развертывание небольшого приложения будет иметь Nginx (или Apache) и несколько серверов Thin (или Mongrel, Unicorn и т. Д.), Работающих на одной машине.

Nginx получает каждый запрос.Затем он обслуживает и статические файлы напрямую (css, js, изображения, кэшированные данные).Если запрос требует обработки, он передает запрос процессу rails (Thin).

Таким образом, ваши (относительно) медленные серверы приложений освобождаются от обслуживания статических файлов, а ваш веб-сервер обеспечивает сортировкубалансировки нагрузки.

Преимущество Nginx / Thin над чем-то вроде Apache / Mongrel заключается в том, что Nginx / Thin может обмениваться данными напрямую через сокет unix, устраняя издержки на обмен данными через стек tcp / ip.

4 голосов
/ 11 июня 2012

Thin - сервер приложений, а Nginx - веб-сервер.

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

Сервер приложений предоставляет бизнес-логику клиентским приложениям по различным протоколам, возможно, включая HTTP. В то время как веб-сервер в основном работает с отправкой HTML для отображения в веб-браузере , сервер приложений обеспечивает доступ к бизнес логика для использования клиентскими прикладными программами. Прикладная программа может использовать эту логику так же, как при вызове метода для объекта (или функции в процедурном мире).

2 голосов
/ 09 сентября 2010

Говоря по незнанию (я никогда не использовал Thin), вполне нормально смешивать nginx и сервер приложений вместе, используя nginx для обслуживания статического содержимого и выступая в качестве обратного прокси-сервера для сервера приложений.

Это позволяет легко смешать смешно быструю статическую информацию, обслуживающую выбранный сервер приложений (зависит от языка программирования), и все они поступают с одного адреса: порт.

...