Зачем мне Nginx с Puma?

Я развертываю приложение Rails для производства. Похоже, что Puma быстро и обрабатывает многие вещи, которые я хочу на веб-сервере.

Мне интересно, нужно ли мне даже беспокоиться о Nginx, и о чем я буду скучать, если бы использовал Puma?

Ответы

Ответ 1

Nginx - это веб-сервер, а puma - сервер приложений. Оба имеют свои преимущества, и вам нужны оба.

Некоторые примеры:

  • Статический redirects- вы можете настроить nginx для перенаправления всего http трафика на тот же URL-адрес с помощью https. Таким образом, такие тривиальные запросы никогда не попадут на ваш сервер приложений.

  • Multipart upload- Nginx лучше подходит для обработки многостраничных загрузок. Nginx объединит все запросы и отправит их в виде одного файла в puma.

  • Обслуживание статического assets- Рекомендуется использовать статические ресурсы (в /public/ endpoint in rails) через веб-сервер без загрузки вашего сервера приложений.

  • В nginx встроены некоторые базовые средства защиты от DDoS.

Ответ 2

Там существует значительная разница между веб-сервером и сервером приложений. Nginx (веб-сервер) и Puma (сервер приложений) будут обрабатывать запросы в вашем приложении одновременно.

Всякий раз, когда запрос поступает от клиента, он будет получен nginx, а затем он будет перенаправлен на сервер приложений, который находится здесь Puma.

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

Как упоминалось продавцом, вы можете обслуживать статические страницы с помощью веб-сервера, так как это будет лучший подход.

Если вы собираетесь включить сертификацию в свое веб-приложение, вы можете перенаправить здесь с http на https, который попадет на сервер приложений только после перенаправления на https.

Если вы собираетесь использовать Puma, вы должны убедиться, что сервер эффективно использует ресурсы, но если вы будете использовать nginx, то он сам позаботится об этом.

вы можете получить дополнительную информацию здесь.

Ответ 3

Я нашел это тоже полезным и больше объяснений здесь