LLNG is build on Plack, so it can be used with any compatible server:
uWSGI or Node.js FastCGI server may provide the highest performance.
A llng-server.psgi
is provided in example directory. It is designed to replace exactly FastCGI server. You can use it :
You can also replace only a part of it to create a specialized FastCGI server (portal,…). Look at llng-server.psgi
example and take the part you want to use.
There are also some other psgi files in examples directory.
llng-fastcgi-server
can be launched with the following options:
Command-line options | Environment variable | Explanation | |
---|---|---|---|
Short | Long | ||
-p | –pid | PID | Process PID |
-u | –user | USER | Unix uid |
-g | –group | GROUP | Unix gid |
-n | –proc | NPROC | Number of process to launch (FCGI::ProcManager*) |
-s | –socket | SOCKET | Socket to listen to |
-l | –listen | LISTEN | Listening address. Examples: host:port , :port , /socket/path |
-f | –customFunctionsFile | CUSTOM_FUNCTIONS_FILE | File to load for custom functions |
-e | –engine | ENGINE | Plack::Handler engine, default to FCGI (see below) |
–plackOptions | Other options to path to Plack. Can bu multi-valued. Values must look like key=value |
See llng-fastcgi-server(1)
manpage.
FCGI with FCGI::ProcManager::Constrained
llng-fastcgi-server -u nobody -g nobody -s /run/llng.sock -n 10 -e FCGI \ --plackOptions manager=FCGI::ProcManager::Constrained
FCGI::Engine::ProcManager
llng-fastcgi-server -u nobody -g nobody -s /run/llng.sock -n 10 \ -e FCGI::Engine::ProcManager
You must install uWSGI PSGI plugin. Then for example, launch llng-server.psgi (simple example):
/usr/bin/uwsgi --plugins psgi --socket :5000 --uid www-data --gid www-data --psgi /usr/share/lemonldap-ng/llng-server/llng-server.psgi
You will find in LLNG Nginx configuration files some comments that explain how to configure Nginx to use uWSGI instead of LLNG FastCGI server.
lemonldap-ng-uwsgi-app installs a uWSGI application: /etc/uwsgi/apps-available/llng-server.yaml
. To enable it, link it in apps-enabled
and restart your uWSGI daemon:
cd /etc/uwsgi/apps-enabled ln -s ../apps-available/llng-server.yaml service uwsgi restart
Then adapt your Nginx configuration to use this uWSGI app.
LLNG provides Plack::Middleware::Auth::LemonldapNG
that can be used to protect any PSGI application: it acts exactly like a LLNG handler. Simple example:
use Plack::Builder; my $app = sub { ... }; builder { enable "Auth::LemonldapNG"; $app; };
More advanced example:
use Plack::Builder; my $app = sub { ... }; # Optionally ($proposedResponse is the PSGI response of Lemonldap::NG handler) sub on_reject { my($self,$env,$proposedResponse) = @_; # ... } builder { enable "Auth::LemonldapNG", llparams => { # ... }, on_reject => \&on_reject; $app; };