Вернуть старое меню
Бесплатно, 24/7 8 (800) 775-97-42
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Выбрать VPS
Маркетплейс
О нас
Сообщество
Поддержка
Баланс:
Бонусы:
Войти
Выйти
Зарегистрироваться
ГОТОВЫЕ ТАРИФЫ
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Card icon Своя конфигурация
Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
О компании Входим в топ-15 IAAS в России
Дата-центры 17 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Поможем с гос. лицензированием
Бонусная программа Накопительная система лояльности
Card icon Пинг до дата-центров
Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Card icon Соцсети
Наш блог на Хабре, выступления, новости компании.
Присоединиться
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
Бесплатно, 24/7 8 (800) 775-97-42
Mobile menu button
Выбрать VPS
Mobile card icon
Своя конфигурация Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Ref icon
Бесплатный тест на 3 дня
Маркетплейс
О нас
Mobile card icon
Пинг до дата-центров Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
О компании Входим в топ-15 IAAS в России
Дата-центры 17 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Накопительная система лояльности
Бонусная программа Накопительная система лояльности
Сообщество
Mobile card icon
Соцсети Наш блог на Хабре, выступления, новости компании.
Присоединиться
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Поддержка
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Войти
Зарегистрироваться
Личный кабинет
Мои серверы
Домены
Баланс: Бонусы:
Заказать
Настройки
Партнеру
Выйти
Мои серверы
Домены
Заказать
Настройки
Партнеру
  • ВЫБРАТЬ VPS
  • ДАТА-ЦЕНТРЫ
  • СПРАВОЧНИК
  • ПОДДЕРЖКА
  • ВОЙТИ
RuVDS/Справочник/Развертывание ПО на VPS сервере/Как установить Puma на Ubuntu 24.04

Как установить Puma на Ubuntu 24.04

143 просмотров 0 2025-04-10

Puma — высокопроизводительный многопоточный сервер для Rack-совместимых Ruby-приложений, таких как Rails, Sinatra и др., оптимизированный для параллельной обработки запросов. Puma подходит для работы на виртуальном сервере благодаря эффективному использованию ограниченных ресурсов (CPU/RAM) за счёт своей многопоточности и поддержки режима кластера.

В статье рассмотрим, как установить Puma на Ubuntu 24.04. В рамках данного мануала мы запустим минималистичное Ruby-приложение, после чего настроим веб-сервер Nginx в качестве обратного прокси и защитим внешний трафик при помощи TLS-сертификата.

Как установить Puma на Ubuntu 24.04

Перед началом установки нового программного обеспечения обновите список доступных пакетов и их версий в вашей системе:

$ sudo apt update

Затем для корректной работы Ruby-проекта установите необходимые пакеты:

  • ruby — интерпретатор языка Ruby, позволяющий запускать Ruby-скрипты и приложения;
  • ruby-dev — набор заголовочных файлов и инструментов для компиляции нативных расширений Ruby;
  • bundler — менеджер зависимостей Ruby, который управляет установкой библиотек в проекте на основе файла Gemfile.
$ sudo apt install ruby ruby-dev bundler

После чего проинсталлируйте Puma, используя систему пакетов RubyGems:

$ sudo gem install puma

Создание Ruby-приложения

В качестве примера мы попробуем разместить простейшее Ruby-приложение на установленном сервере Puma. Структура нашего тестового приложения будет выглядеть следующим образом:

your-app/
├── config.ru # Главный конфигурационный файл
├── app.rb    # Логика приложения
└── Gemfile   # Зависимости

Для начала создайте каталог, в котором Ruby-приложение будет находиться. В нашем примере таким каталогом будет /var/www/your-app/:

$ sudo mkdir -p /var/www/your-app/

После чего перейдите в созданный каталог:

$ cd /var/www/your-app/

Здесь создайте файл самого приложения:

$ sudo nano app.rb

В нашем примере приложение будет просто выводить на веб-страницу заголовок Your Ruby & Puma Project Page!:

class YourApp
  def call(env)
    [200, {"Content-Type" => "text/html"}, ["<h1>Your Ruby & Puma Project Page!</h1>"]]
  end
end

App = YourApp.new     # Экспорт объекта приложения

Далее создайте файл конфигурации:

$ sudo nano config.ru

Его содержимое в нашем примере будет таким:

require_relative 'app'  # Подключение app.rb
run App                 # Запуск приложения

И так же создайте файл, в котором будет определён список зависимостей (гемов) и их версий. Они необходимы для работы созданного приложения:

$ sudo nano Gemfile

В нашем случае его содержимое выглядит следующим образом:

source 'https://rubygems.org'
gem 'puma'       # HTTP-сервер

Затем измените владельца для каталога, в котором расположено приложение, и всего его содержимого на вашего текущего пользователя, а также измените группу на группу www-data, чтобы веб-сервер имел доступ к файлам приложения:

$ sudo chown -R $USER:www-data /var/www/your-app/

После чего установите соответствующие права на данный каталог:

$ sudo chmod -R 750 /var/www/your-app/

И, наконец, установите зависимости, которые указаны в созданном ранее файле Gemfile:

$ bundle install

Проверка доступности приложения

Чтобы проверить работоспособность приложения, можно запустить Puma, например, на порту 8080. Для этого сначала необходимо разрешить доступ к виртуальному серверу через TCP-порт 8080:

$ sudo ufw allow 8080/tcp

После чего запустите Puma командой:

$ puma -p 8080

Затем на локальном компьютере откройте браузер и перейдите на http://X.X.X.X:8080, где замените X.X.X.X на IP-адрес вашей виртуальной машины.

Доступ к веб-странице по TCP-порту 8080

Чтобы завершить работу приложения, нажмите Ctrl c.

Запуск Puma как службы

После того, как вы убедились в работоспособности созданного Ruby-приложения, выглядит разумным запустить его как службу через systemd. То есть, необходимо сделать так, чтобы приложение работало постоянно и в фоновом режиме. Для этого создайте файл службы:

$ sudo nano /etc/systemd/system/puma.service

И наполните его следующим содержимым:

[Unit]
Description=Puma Server
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/your-app
ExecStart=/usr/local/bin/puma -p 8080 -e production
Restart=always

[Install]
WantedBy=multi-user.target

Сохраните внесённые изменения, закройте файл и перезагрузите конфигурацию юнитов, чтобы в systemd появилась информация о новом сервисе:

$ sudo systemctl daemon-reload

После чего запустите службу:

$ sudo systemctl start puma

И установите её в автозагрузку:

$ sudo systemctl enable puma

Чтобы убедиться в том, что сервис работает без ошибок, выведите его состояние командой:

$ systemctl status puma

Вывод команды не должен содержать сообщений об ошибках. При этом служба должна быть активна и установлена в автозагрузку (enabled).

Вывод состояния службы Puma - Как установить Puma на Ubuntu

Настройка Nginx как прокси

Чтобы разгрузить Ruby-сервер от обработки статики, обеспечить безопасное HTTPS-соединение, а также реализовать балансировку нагрузки и защиту от атак, рекомендуется установить и настроить веб-сервер Nginx в качестве обратного прокси перед Puma.

Конфигурация с использованием обратного прокси работает следующим образом:

  • пользователь обращается к веб-странице по протоколу HTTP или HTTPS, где Nginx принимает запрос, обрабатывает его и отдаёт статику;
  • Nginx перенаправляет динамические запросы на Puma через локальное HTTP-соединение, не нагружая Ruby-сервер обработкой HTTPS;
  • Puma исполняет код и возвращает результат через Nginx, который доставляет ответ пользователю.

Говоря проще, веб-сервер Nginx выступает безопасной «витриной» для веб-сайта, в то время как Puma сосредоточена только на выполнении логики кода.

Таким образом, для реализации данной схемы сначала необходимо установить веб-сервер Nginx:

$ sudo apt install nginx

По окончании инсталляции создайте конфигурационный файл Nginx:

$ sudo nano /etc/nginx/sites-available/your-app

Чтобы включить в Nginx проксирование, добавьте в конфиг следующее содержимое:

server {
    listen 80;
    server_name your-site-name.ru;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
    }
}

Затем создайте символическую ссылку, которая активирует конфигурацию сайта в Nginx:

$ sudo ln -s /etc/nginx/sites-available/your-app /etc/nginx/sites-enabled/

После чего проверьте синтаксис Nginx на корректность:

$ sudo nginx -t

В выводе команды не должно содержаться каких-либо сообщений об ошибках.

Проверка корректности синтаксиса Nginx - Как установить Puma на Ubuntu

Если ошибок нет, перезапустите службу Nginx:

$ sudo systemctl restart nginx

И, наконец, откройте браузер и перейдите на веб-страницу вашего приложения по ссылке http://your-site-name.ru, где your-site-name.ru замените на доменное имя вашего проекта.

Доступ к веб-странице по протоколу HTTP

При этом не забудьте добавить в брандмауэр UFW правило, разрешающее доступ к вашему серверу с использованием протокола HTTP:

$ sudo ufw allow http

Настройка доступа через HTTPS

Для того, чтобы обеспечить шифрование передаваемых данных между пользователем и веб-сервером, и тем самым защитить конфиденциальную информацию от перехвата и подмены, выглядит разумным настроить доступ к созданному веб-сайту с использованием защищённого протокола HTTPS, вместо HTTP.

Наиболее удобным способом организации доступа через HTTPS является установка TLS-сертификата от Let’s Encript. Автоматизация получения и обновления бесплатных TLS-сертификатов в Ubuntu обеспечивается при помощи такого инструмента от Let’s Encrypt, как Certbot. Данная утилита интегрируется с веб-сервером Nginx, прописывая необходимые настройки в его конфигурацию, включая автоматическое перенаправление трафика HTTP на HTTPS.

При помощи следующей команды запустите установку утилиты Certbot и плагина для интеграции Certbot с Nginx:

$ sudo apt install certbot python3-certbot-nginx

Поскольку Certbot полностью автоматизирует настройку HTTPS для сайта на Nginx, для установки TLS-сертификата достаточно запустить на выполнение всего одну команду. В ней замените your-site-name.ru на доменное имя вашего сайта:

$ sudo certbot --nginx -d your-site-name.ru

В ходе выполнения команда попросит указать адрес электронной почты. Он будет использоваться для отправки уведомлений об истечении срока действия сертификата, для восстановления доступа к аккаунту Let’s Encrypt, а также для подтверждения согласия с пользовательским соглашением.

Далее, для успешного выпуска и установки сертификата на вашей системе необходимо будет с использованием клавиши Y согласиться с:

  • регистрацией на ACME-сервере Let’s Encrypt;
  • тем, чтобы Let’s Encrypt поделился вашим E-mail с Electronic Frontier Foundation — партнёром-основателем Let’s Encrypt, которая занимается развитием Certbot.

После чего Certbot проверит владение доменом через временные файлы в веб-папке Nginx и запросит сертификат для вашего домена.

Вывод работы утилиты Certbot - Как установить Puma на Ubuntu

Если процедура установки TLS-сертификата прошла успешно, откройте браузер и проверьте доступность веб-страницы, перейдя по ссылке https://your-site-name.ru, где вместо your-site-name.ru укажите доменное имя вашего сайта.

При этом, чтобы разрешить доступ к вашему серверу по протоколу HTTPS, добавьте в брандмауэр соответствующее правило:

$ sudo ufw allow https
Доступ к веб-странице по протоколу HTTPS

Если веб-страница, создаваемая вашим Ruby-приложением, доступна при подключении через HTTPS, можно будет удалить из брандмауэра правила, разрешающие доступ по порту 8080 и по протоколу HTTP, которые создавались для проверки работоспособности приложения ранее:

$ sudo ufw delete allow 8080/tcp
$ sudo ufw delete allow http

Статья полезна?

Да  Нет
Похожие статьи
  • make com: Авторизация Bearer токеном на примере API RUVDS
  • Как установить Flask на Ubuntu 24.04
  • Как настроить HTTPS-доступ к веб-интерфейсу Gitea
  • Как установить Gitea на Linux
  • Как установить Node Exporter на Linux
  • Как установить VictoriaMetrics на Ubuntu 24.04
Оставить комментарий Отменить ответ

Популярные статьи
  • Как подключиться по RDP из-под MacOS
  • Как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
  • Управление портами в Linux (Ubuntu/Debian/CentOS)
  • Настройка VPN с использованием WireGuard
  • Как извлекать и разархивировать файлы .tar.gz в Linux-системах
Разделы Справочника
  • Настройка VPS Сервера
  • Начало работы
  • Особенности виртуального сервера
  • Партнерам
  • Развертывание ПО на VPS сервере
  • Сетевые настройки сервера
GAME OVERNIGHT
CLOUDRUSSIA
STRATONET
SPACE DC
ARCTIC DC
VPS/VDS серверы:
Тестовый период
Дешевый VPS
VPS Старт
VPS Мощные
VPS Windows
VPS Быстрые NVMe
VPS с 1C
Форекс VPS
Игровые серверы
VPS для бизнеса
Пинг до дата-центров
Услуги:
Маркетплейс
Панель ispmanager
Антивирусная защита
Аренда лицензий
Облачное хранилище
VPS серверы с Plesk Obsidian
Колокация
Looking Glass
DNS
Клиентам:
О компании
Дата-Центры
Новости
Аттестация по ФСТЭК
Бонусная программа
Публичная Оферта
Соглашение об уровне услуг
Политика обработки персональных данных
Сувениры от RuVDS
Партнерам:
Для прессы
Партнерская программа
Отзывы
API
Помощь:
Справочник
FAQ
Созданных
серверов
231504
Huawey
Supermicro
Cisco
Intel
Microsoft
ISP
Kaspersky
RDCA Logo

«Креатив года» Премия ЦОДы.рф 2021, 2025

RDCA Logo

«Хостер года» Премия ЦОДы.рф 2023

RDCA Logo

«Человек года» Премия ЦОДы.рф 2024

RuVDS
support@RUVDS.com
8 (800) 775-97-42
+7 (495) 135-10-99
МЫ В СОЦИАЛЬНЫХ СЕТЯХ
Copyright © 2025 RuVDS. Все права защищены.
ООО "МТ ФИНАНС" | ОГРН 1157746680332
Оставить отзыв

Условия получения бонуса за оставленный отзыв:

  1. Напишите про нас на любом из специализированных сайтах для отзывов.
  2. Пришлите нам текст отзыва и ссылку на ваш отзыв.
  3. После проверки, мы опубликуем ваш отзыв у нас на сайте и также начислим бонус на ваш баланс.
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS
Оставить отзыв
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS