Стандартная production-конфигурация Rails-приложения включает несколько взаимосвязанных компонентов:
- Puma: многопоточный web-сервер, идущий в комплекте с Rails 5+. Настройте workers = количество CPU, threads = 5-10 на воркера.
- Nginx: обратный прокси перед Puma. Обрабатывает SSL, отдаёт статические ассеты из public/, проксирует динамику в Puma.
- rbenv или rvm: управление версиями Ruby. Позволяет держать несколько версий Ruby на одном сервере для разных приложений.
- PostgreSQL: стандартная база данных для Rails в production. Active Record предоставляет полный доступ к PostgreSQL-специфичным возможностям.
- Redis: используется Action Cable (WebSocket), Rails.cache и Sidekiq одновременно.
- Sidekiq: фоновая обработка задач через Redis. Запускается как отдельный процесс под Systemd или Foreman.