Изучение Puma: методы и примеры для веб-сервера Ruby

Команда «gem install puma» используется для установки драгоценного камня Puma, популярного веб-сервера для приложений Ruby. Вот несколько методов, связанных с Puma, а также примеры кода:

  1. Базовая настройка сервера Puma:

    require 'puma'
    app = ->(env) { [200, { 'Content-Type' => 'text/plain' }, ['Hello, Puma!']] }
    Puma::Server.new(app).tap do |server|
    server.add_tcp_listener('localhost', 3000)
    end.run.join

    Этот код настраивает базовый сервер Puma, который прослушивает localhost:3000и отвечает «Привет, Puma!» для каждого запроса.

  2. Настройка Puma с помощью файла конфигурации:
    Создайте config/puma.rb

    environment 'production'
    threads 4, 16
    workers 2
    bind 'tcp://0.0.0.0:3000'

    Этот файл конфигурации устанавливает рабочую среду, определяет количество потоков и рабочих процессов и обязывает сервер прослушивать все интерфейсы на порту 3000.

  3. Puma как погрузчик для стоек:

    require 'puma'
    require 'rack'
    app = Rack::Builder.new do
    run ->(env) { [200, { 'Content-Type' => 'text/plain' }, ['Hello, Puma Rack Handler!']] }
    end
    Rack::Handler::Puma.run(app, Port: 3000)

    Этот код демонстрирует использование Puma в качестве обработчика Rack для обслуживания приложения Rack. Он отвечает: «Привет, Puma Rack Handler!» для каждого запроса.

  4. Режим кластера Puma:

    require 'puma'
    require 'rack'
    app = Rack::Builder.new do
    run ->(env) { [200, { 'Content-Type' => 'text/plain' }, ['Hello, Puma Cluster!']] }
    end
    Puma::Cluster.new(app).tap do |cluster|
    cluster.workers 2
    end.run.join

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