Небольшое вступление
Планирую перевести с тестирование все 8 разделов оригинальной библиотеки со ссылками на оригинал, они не всегда точные и актуальные, то есть будет скорее не точный перевод, а пересказ.
Для начала:
Вообще Passenger может быть установлен:
- Общесистемно:
1.1 Пакетным менеджером вашего дистрибутива.
1.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.(прим перев)
- Что такое Passenger?
- Подготовка демонстрационных приложений.
- Обновление набора гемов (Updating your gem bundle).
- Запуск сервера.
bundle exec rails server - Логи.
- Остановка сервера.
- Выводы.
Что такое 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)
KriMs
08.03.2016 11:41Если это «перевод» — то почему не указан источник перевода?
Это один из самых худших туториалов, который мне приходилось встречать.
В чём смысл использования passenger'a как гема?
Самый нормальный способ использование passenger'а — установка пакетом вместе с nginx/apache.zirf
08.03.2016 12:19Ссылка в названии через слеш
Вы повторяете мой вопрос. А зачем ставить passenger не общесистемно?
Не поленитесь сходить по ссылке ( там написано тоже самое). И поймете мое удивление. Но, quickstart для обычного пользователя, который максимум будет запускать его standalone, чтобы потрогать? Я обо всем этом написал.
Вот только стоит ли разбирать "Deployment"? Меня вообще больше интересует чем им WEBrick, Puma и Unicorn не угодили, пока как-то голословно.
noder
В статье не хватает сравнения passenger с другими ruby серверами, такими как unicorn, thin, puma и т.д. Почему я должен использовать именно его, а не какой-либо другой.
zirf
Это вступление. Я последовательно перевожу последовательно, в следующей части будет понятнее. WEBrick критикуется из-за скорости, а вот и цитата из документации "Unicorn и Puma — альтернативные сервера приложений. Passenger заменяет их. Набор качеств Passenger отличается от таковых у Unicorn и Puma. В частности, Passenger серьезно сфокусирован на простоте использования, интерграции с другими компонентами, автоматическом управлении и диагностике проблем. Например, Passenger может интегрироваться с Nginx и Apache для облегчения установки, и предоставляет инструменты для легкой диагностики проблем."
Что характерно, Heroku про WEBrick и Puma плохо не думает.
Что характерно