Запуск web-приложения на Sinatra с Phusion Passenger
На сегодняшний день одним из самых простых способов запуска Rails и Rack web-приложений является Phusion Passenger, представляющий собой модуль для Apache и Nginx. Фреймворк Sinatra базируется на Rack, следовательно, приложения на его основе Passenger способен легко запускать.
Для приложения необходима базовая структура директорий:
|-- app.rb <-- непосредственно приложение
|-- config.ru <-- Rackup файл для запуска
|-- public/ <-- директория для статических файлов (картинки, css, javascript)
|-- tmp/ <-- временная директория
Создаем виртуальный хост (предполагается, что установлен Passenger модуль для Apache):
ServerName APP_NAME.dev
DocumentRoot APP_DIRECTORY/public
</VirtualHost>
Для запуска приложения из предыдущего поста про Sinatra необходим следующий Rackup файл config.ru:
run Sinatra::Application
По-умолчанию Passenger будет передавать в приложение переменную окружения ENV['RACK_ENV'] равную production. Для того, чтобы задать другое окружение (например, development), в VirtualHost можно добавить:
Если Passenger используется в качестве dev-сервера при разработке, то будет удобно включить автоматическую перезагрузку приложения при каждом запросе. Для этого следует поместить файл always_restart.txt в директорию tmp:
Related posts: