Plack is a powerful engine that powers many very fast servers. LLNG uses some Plack libraries to run as FastCGI server. So, It can be easily run on these servers. See also Advanced PSGI usage if you want to replace LLNG FastCGI server.
#!/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