Что такое стойка в рубине?Что такое пума в рубине? - PullRequest
0 голосов
/ 29 января 2019

Согласно определению, puma - это своего рода веб-сервер, а стойка - это интерфейс между веб-сервером и сервером приложений.

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

Другой вопрос заключается в том, что если puma является своего рода веб-сервером, могу ли я использовать Apache илиNginx заменить его?

1 Ответ

0 голосов
/ 29 января 2019

Puma - это сервер приложений, а точнее сервер приложений Rack .(Существует не только Puma: Unicorn, Passenger и т. Д. Также существуют серверы приложений для различных интерфейсов; например, Tomcat и JBoss являются серверами приложений Java.) Сервер приложений принимает HTTP-запрос, анализирует его в структуре приложения.язык передает его приложению и ожидает объект ответа, который затем возвращает клиенту.

Nginx / Apache - веб-серверы общего назначения.Apache не знает, как обслуживать приложения Rack, а Puma не знает, как делать кучу других вещей, которые делает Nginx / Apache (например, CGI-скрипты, перезапись URL, прокси, балансировка, черные списки ...)

Rack - это библиотека для Ruby, которая принимает проанализированные HTTP-запросы от сервера приложений, направляет их через настраиваемый стек промежуточного программного обеспечения (например, для обработки сеансов), передавая объект запроса обработчику и возвращая объект ответа серверу приложений, делаяВеб-разработка в Ruby легко.Вы можете запустить приложение Rack напрямую (точнее, на очень простом сервере, который установлен вместе с Rack), но это не рекомендуется вне разработки, где приходят «правильные» серверы приложений: они знают, как поддерживать ваше приложение живымперезапустите его, если он умирает, убедитесь, что запущено заранее определенное количество потоков, и тому подобное.

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

...