[pm-h] Looking for PSGI web server Daemon
John Lightsey
john at nixnuts.net
Tue Jun 9 08:14:49 PDT 2015
Is there some advantage in using a Perl PSGI daemon rather than a more
standard combination of Apache+ModPerl+PSGI or Nginx+FastCGI+PSGI?
The utility of a standalone PSGI server seems pretty obvious for
development, but not so obvious for production deployments. I would
think that the performance hit for static files would be significant
enough to outweigh the benefits of using a dedicated PSGI server.
On Tue, 2015-06-09 at 13:02 +0000, Mark Allen via Houston wrote:
> I just found out about Gazelle this morning - looks reeeeeally cool for PSGI apps.
> Gazelle - Preforked Plack Handler for performance freaks - metacpan.org
>
> | |
> | | | | | |
> | Gazelle - Preforked Plack Handler for performance freaks - metacpan.orgPreforked Plack Handler for performance freaks |
> | |
> | View on metacpan.org | Preview by Yahoo |
> | |
> | |
>
>
>
>
>
> On Monday, June 8, 2015 10:32 PM, Michael R. Davis <mrdvt92 at yahoo.com> wrote:
>
>
> Perl Folks,
> >>> hoping that someone had already packaged up an RPM/PKG like Apache where I could just drop my PSGI script in the /etc/starman/pgsi/ folder and be off and running. Here's a cool URL mapper for Plack apps. It works great for Plack apps but it fails to pull in more than the first Mojo app. I have no idea why but load_psgi (`do "$filename"`) must work differently after the first Mojo app is loaded. Error: "Can't use string ("Mojolicious::Commands") as a subroutine ref while "strict refs" in use at /usr/share/perl5/vendor_perl/Plack/Middleware/Auth/Basic.pm line 30."
> $ cat plack-builder-mount-deamon-folder.pl
> #!/usr/bin/perl
> use strict;
> use warnings;
> use Plack::App::URLMap qw{};
> use Plack::Util qw{};my %filenames = (
> '/p0' => 'plack.psgi', #works
> '/p1' => 'plack.psgi', #works
> '/p2' => 'plack.psgi', #works
> '/p3' => 'plack.psgi', #works
> '/p4' => 'plack.psgi', #works
> '/p5' => 'plack.psgi', #works
> '/m1' => 'mojo-lite-1.psgi', #works
> '/m2' => 'mojo-lite-2.psgi', #fails
> '/m3' => 'mojo-lite-3.psgi', #fails
> '/m4' => 'mojo-lite-4.psgi', #fails
> '/m5' => 'mojo-lite-5.psgi', #fails
> );my $mapper = Plack::App::URLMap->new;foreach my $mount (sort keys %filenames) {
> my $filename = $filenames{$mount};
> my $app = Plack::Util::load_psgi($filename) or die($@);
> die($@) unless ref($app) eq "CODE";
> $mapper->map($mount => $app);
> print "Mapped: $mount to $filename ($app)\n";
> }my $system = $mapper->to_app;
> --- $ cat plack.psgi#!/usr/bin/perl
> use Plack::Builder;my $app = sub {
> my $env = shift;
> return [
> 200,
> [ "Content-Type" => "text/plain", "Content-Length" => 11 ],
> [ "Hello World" ],
> ];
> };builder {
> enable "Auth::Basic", authenticator => \&authen_cb;
> $app;
> };sub authen_cb {
> my($username, $password, $env) = @_;
> return $username eq 'user' && $password eq 'pass';
> }
> --- $ cat mojo-lite.psgi
> #perl
> use strict;
> use warnings;
> use Plack::Builder qw{builder enable mount};
> use Mojolicious::Lite qw{app};
> use DateTime;get '/' => sub {
> my $c = shift;
> $c->render(
> json => {
> int => 1,
> float => 2.23423,
> exp => 34.45e27,
> string => "hello world!",
> dt => DateTime->now,
> }
> );
> }; get '/env' => sub {
> my $c = shift;
> $c->render(
> text => join("", map {sprintf "%s: %s\n", $_, $ENV{$_}} sort keys %ENV),
> );
> }; sub authen_cb {
> my($username, $password, $env) = @_;
> return $username eq 'user' && $password eq 'pass';
> } builder {
> enable "Auth::Basic", authenticator => \&authen_cb; app->start; #app from Mojolicious::Lite
> };
> --- Thanks,
> Mike
>
> mrdvt92
>
>
>
> _______________________________________________ Houston mailing list Houston at pm.org http://mail.pm.org/mailman/listinfo/houston Website: http://houston.pm.org/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://mail.pm.org/pipermail/houston/attachments/20150609/bab492f8/attachment-0001.bin>
More information about the Houston
mailing list