Plack is a powerful engine that powers many very fast servers. LLNG uses some Plack libraries to run as FastCGI server. It can so easily be launched on these servers.
#!/usr/bin/perl use Data::Dumper; use Plack::Builder; # Basic test app my $testApp = sub { my ($env) = @_; return [ 200, [ 'Content-Type' => 'text/plain' ], [ "Hello LLNG world\n\n" . Dumper($env) ], ]; }; # Build protected app my $test = builder { enable "Auth::LemonldapNG"; $testApp; }; # Build portal app use Lemonldap::NG::Portal::Main; my $portal = builder { enable "Plack::Middleware::Static", path => '^/static/', root => '/path/to/portal/htdocs/'; Lemonldap::NG::Portal::Main->run( {} ); }; # Build manager app use Lemonldap::NG::Manager; my $manager = builder { enable "Plack::Middleware::Static", path => '^/static/', root => '/path/to/manager/htdocs/'; enable "Plack::Middleware::Static", path => '^/doc/', root => '/path/to/dir/that/contains/"doc"'; enable "Plack::Middleware::Static", path => '^/lib/', root => '/path/to/doc/pages/documentation/current/'; Lemonldap::NG::Manager->run( {} ); }; # Global app builder { mount 'http://test1.example.com/' => $test; mount 'http://auth.example.com/' => $portal; mount 'http://manager.example.com/' => $manager; };
Launch it with Starman for example:
$ starman --port 80 --workers 32 llapp.psgi