2010-09-09 2 views
13

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

Спасибо!

ответ

2

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

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

25

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

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

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

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

+10

Для более прямого ответа на вопрос: Nginx - это веб-сервер. Он обслуживает статические файлы и маршрутизирует нестационарный запрос на серверы приложений. Тонкий сервер приложений, он фактически обрабатывает запросы с помощью приложения Rails/Rack. –

4

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

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

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

Смежные вопросы