Небольшое вступление


Планирую перевести с тестирование все 8 разделов оригинальной библиотеки со ссылками на оригинал, они не всегда точные и актуальные, то есть будет скорее не точный перевод, а пересказ.

Для начала:

Вообще Passenger может быть установлен:

  1. Общесистемно:
    1.1 Пакетным менеджером вашего дистрибутива.
    1.2 Из тарбола.
  2. Локально через RubyGems.

Сам passenger может быть запущен с 3-я ключами:

passenger start
passenger stop
passenger status

Но самое главное есть ключ --help после команды (что вполне привычно), например

$ passenger start --help

Очень полезно. Будет понятно почему.

Passenger интегрируется с apache,nginx, может работать как легкий автономный web-сервер. Если в Rails — приложении он добавлен в Gemfile, то "rails server" запустит его, а не WEBricks, предварительно поставив его для Вас локально, но можно поступать по другому, об этом ниже. Смысл полной сборки с бинарными файлами не очень понятен, разве обычный пользователь может подключить модули к apache2 или nginx?

Быстрый старт / Quickstart: Ruby + Phusion Passenger


Это 5-и минутное руководство научит вас запуску приложений ruby с сервером PhusionPassenger в режиме разработки. Строго говоря описан вариант установки RubyGems.(прим перев)

  1. Что такое Passenger?
  2. Подготовка демонстрационных приложений.
  3. Обновление набора гемов (Updating your gem bundle).
  4. Запуск сервера.
    bundle exec rails server
  5. Логи.
  6. Остановка сервера.
  7. Выводы.

Что такое Passenger?

Passenger открытый сервер web-приложений (есть и Enterprise версия — прим перев.). Он обслуживает HTTP-запросы, управляет ресурсами, позволяет производить диагностику, мониторить и.т.д.
Passenger очень легок в использовании далее активноебахвальство создателей в оригинале с видео.
Это руководство не является всеобъемлющим. Вместо этого оно позволяет начать работу как можно быстрее, после этого можно рассмотреть. Перевод будет, там важнее, сложнее, с иллюстрациями.

Подготовка демонстрационных приложений

Как обычно, "hello world."
Rails:
$ git clone https://github.com/phusion/passenger-ruby-rails-demo.git $ cd passenger-ruby-rails-demo
Sinantra:
$ git clone https://github.com/phusion/passenger-ruby-sinatra-demo.git $ cd passenger-ruby-sinatra-demo

Обновление набора гемов (Updating your gem bundle)

Запускаем:

От переводчика: тут не совсем понятно

"Open your app's Gemfile and add "passenger":"
Откройте и добавьте.

$ gem "passenger", ">= 5.0.25", require: "phusion_passenger/rack_handler"

М-м-м, в самих Gemfile's уже есть

# gem 'passenger'

Вот и гадай. Попробовал и так и так — работает. Это к сведению.

Далее все очевидно

$ cd /path-to-your-app
$ bundle install
...
Installing passenger x.x.x

Your bundle is complete!

Запуск сервера

теперь можно запустить сервер:

$ bundle exec passenger start
======= Phusion Passenger Standalone web server started =======
PID file: /Users/phusion/myapp/tmp/pids/passenger.3000.pid
Log file: /Users/phusion/myapp/log/passenger.3000.log
Environment: development
Accessible via: http://0.0.0.0:3000/

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================

Лучше не запускать автономный passenger на localhost и порт 3000, лучше

$ bundle exec passenger start -p 8081 -a 192.168.1.1

Или как там у Вас.

Как уже было сказано,

$ bundle exec rails server

Запустит passsenger, который встанет локально.

Логи

Логгирование богатое, обычно log/passenger.XXXX.log, где ХХХХ — номер порта, под Rails сообщения также выводятся на терминал. Тут тема обширная, все-таки логи самих приложений и web-серверов (это мое мнение — прим. перев.)

Остановка сервера

Не трудно догадаться:
Ctrl-C ну или

$ bundle exec passenger stop

С другой консоли.

Выводы

Если честно,"возьмите с полки пирожок".

UPD1. В общем, это вступление. Как выражаются авторы "За 5 минут познакомится с продуктом". Поэтому не упомянуты пума с единорогом (см коммент ниже). Потом, авторы иногда субъективны, я передаю их слова. Следует также учитывать, что советы приходится проверять. И еще недостаток. Phusion Passenger не только Ruby поддерживает, но объем великоват. Второе у меня в распоряжении 2 лабораторных виртуальных машины CentOS 7.2 и Debian 8.0, увы, я использую Apache, Nginx установлен, но используется реже. После краткого введения следует два раздела, но постараюсь убрать повторы и собрать наиболее ценное из основ и практики.

Комментарии (4)


  1. noder
    07.03.2016 23:16
    +1

    В статье не хватает сравнения passenger с другими ruby серверами, такими как unicorn, thin, puma и т.д. Почему я должен использовать именно его, а не какой-либо другой.


    1. zirf
      08.03.2016 00:16
      -1

      Это вступление. Я последовательно перевожу последовательно, в следующей части будет понятнее. WEBrick критикуется из-за скорости, а вот и цитата из документации "Unicorn и Puma — альтернативные сервера приложений. Passenger заменяет их. Набор качеств Passenger отличается от таковых у Unicorn и Puma. В частности, Passenger серьезно сфокусирован на простоте использования, интерграции с другими компонентами, автоматическом управлении и диагностике проблем. Например, Passenger может интегрироваться с Nginx и Apache для облегчения установки, и предоставляет инструменты для легкой диагностики проблем."
      Что характерно, Heroku про WEBrick и Puma плохо не думает.

      Что характерно


  1. KriMs
    08.03.2016 11:41

    Если это «перевод» — то почему не указан источник перевода?
    Это один из самых худших туториалов, который мне приходилось встречать.
    В чём смысл использования passenger'a как гема?
    Самый нормальный способ использование passenger'а — установка пакетом вместе с nginx/apache.


    1. zirf
      08.03.2016 12:19

      Ссылка в названии через слеш
      Вы повторяете мой вопрос. А зачем ставить passenger не общесистемно?

      Не поленитесь сходить по ссылке ( там написано тоже самое). И поймете мое удивление. Но, quickstart для обычного пользователя, который максимум будет запускать его standalone, чтобы потрогать? Я обо всем этом написал.
      Вот только стоит ли разбирать "Deployment"? Меня вообще больше интересует чем им WEBrick, Puma и Unicorn не угодили, пока как-то голословно.