August 2010 Archives
Эта статья является урезанной версией оригинального перевода на сайте translated.by.
Оригинальная документация: Mojolicious::Guides::Cookbook.pod.
Данный перевод также внесен в раздел документации фреймворка Mojolicious на сайте perl5doc.ru под названием Mojolicious::Guides::Cookbook
РАЗВЕРТЫВАНИЕ
Запуск Mojolicious и Mojolicious::Lite приложений на различных платформах.
Встроенный сервер
Mojolicious имеет ультрапортативный HTTP 1.1 совместимый web-сервер. Обычно он используются при разработке, но он также достаточно стабильный и быстрый для небольших и средних приложений.
Другим большим преимуществом является то, что он поддерживает из коробки TLS и ВебСокеты
Встроенный Prefork Сервер
Чтобы допускать масштабирование с несколькими процессорами (ядрами) и снизить потери производительности из-за блокирующего (медленного) API, встроенный веб-сервер имеет многопроцессовый preforking режим. Это не работает на Windows из-за оптимизаций для UNIX, но это достаточно быстро и масштабируемо для больших приложений.
Nginx
Одним из наиболее популярных способов установки в настоящее время является встроенный preforking web сервер за инвертированным прокси Nginx. Также вожможно использование доменных сокетов UNIX. Встроенный web-сервер Mojolicious, конечно, так же их поддерживает.
Интересным побочным эффектом является то, что можно параллельно запустить
несколько серверов, позволив им совместно использовать один и тот же
сокет и файл блокировки. Это позволяет осуществлять так называемое
горячее развёртывание
, означающее полное отсутствие простоя
во время обновления программ.
Apache/CGI
CGI
поддерживается «из коробки», и ваше приложение на Mojolicious
автоматически определит, что оно запущено как CGI
-скрипт.
Apache/FastCGI
FastCGI
тоже поддерживается «из коробки», и ваше приложение
на Mojolicious автоматически определит, что оно запущено
как FastCGI
-скрипт.
PSGI/Plack
PSGI - это интерфейс между Perl веб-фреймворками и веб-серверами. Plack - это Perl модуль и набор разработчика, который содержит связующее ПО PSGI, вспомогательные инструменты и адаптеры для веб-серверов. На создание PSGI и Plack вдохновили Python WSGI и Ruby Rack. Приложения Mojolicious смехотворно просто разверачивать с помощью Plack.
Apache/mod_perl (PSGI/Plack)
mod_perl
это хороший пример PSGI адаптера без использования
plackup
, помните что установка переменной окружения PLACK_ENV
необходима Mojolicious для автоматического обнаружения PSGI.
IIS6.0/FastCGI
Мы не советуем использовать IIS, ибо это страшно нестабильный веб-сервер. Избегайте работы с ним, если это возможно.
Развлекаемся
Хаки, которые быть может и не очень полезны, но зато интересны! :)
Hello World
Если экономить на каждом байте, то самое маленькое Hello World
приложение, написанное на Mojolicious::Lite, имеет следующий вид:
use Mojolicious::Lite; get '/' => {text => 'Hello World!'}; app->start;
Это работает, потому что автоматический рендеринг срабатывает,
даже если код фактически не выполняется маршрутизатором,
рендерер только забирает значение text
из stash и формирует ответ.