вторник, 15 апреля 2014 г.

PSGI в Catalyst

$ sudo apt-get install libcatalyst-engine-psgi-perl
$ script/myapp_create.pl PSGI

Если всё пойдёт хорошо, в каталоге script создастся диспетчер-скрипт myapp.psgi, которым можно кормить plackup:

$ plackup -server Starman --workers 3 --daemonize --port 5000 lib/myapp.psgi

Теперь наше Catalyst-приложение работает через PSGI

Если при запуске появляется ругань "You are running Catalyst::Engine::PSGI, which is considered a legacy engine for this version of Catalyst", то вам повезло, и у вас установлен свежий Catalyst, в котором есть поддержка Plack и не нужны зависимости от Catalyst::Engine::PSGI.
Поэтому в psgi файле можно смело выдирать вызов метода setup_engine. В итоге получается такой код:

#!/usr/bin/env perl
use strict;
use warnings;

use Plack::Builder;
use MyApp;

my $app = MyApp->psgi_app(@_);

builder {
 enable_if { $_[0]->{REMOTE_ADDR} eq '127.0.0.1' }
        "Plack::Middleware::ReverseProxy";
 $app;
};
 

Комментариев нет:

Отправить комментарий