environments/ppa-mbqj77/deployments/1
Xavier Guimard 7 years ago
parent 52599c5eec
commit f5a2397498
  1. 4
      doc/pages/documentation/current/applications/img/icons.png
  2. 4
      doc/pages/documentation/current/applications/img/loader.gif
  3. 16
      doc/pages/documentation/current/confignginx.html
  4. 6
      doc/pages/documentation/current/configplack.html
  5. 130
      doc/pages/documentation/current/highperfnginxhandler.html
  6. 80
      doc/pages/documentation/current/managertests.html
  7. 28
      doc/pages/documentation/current/performances.html
  8. 117
      doc/pages/documentation/current/psgi.html
  9. 4
      doc/pages/documentation/current/restserverplugin
  10. 14
      doc/pages/documentation/current/start.html
  11. 98
      doc/pages/documentation/current/status.html
  12. 2
      doc/pages/documentation/current/totp2f.html
  13. 2
      doc/pages/documentation/current/u2f.html
  14. 23
      omegat.files/fr/omegat/project_stats.txt
  15. 4
      po-doc/fr/pages/documentation/current/applications/img/icons.png
  16. 4
      po-doc/fr/pages/documentation/current/applications/img/loader.gif
  17. 16
      po-doc/fr/pages/documentation/current/confignginx.html
  18. 6
      po-doc/fr/pages/documentation/current/configplack.html
  19. 143
      po-doc/fr/pages/documentation/current/highperfnginxhandler.html
  20. 85
      po-doc/fr/pages/documentation/current/managertests.html
  21. 30
      po-doc/fr/pages/documentation/current/performances.html
  22. 134
      po-doc/fr/pages/documentation/current/psgi.html
  23. 4
      po-doc/fr/pages/documentation/current/restserverplugin
  24. 14
      po-doc/fr/pages/documentation/current/start.html
  25. 109
      po-doc/fr/pages/documentation/current/status.html

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=0b96dfdde10e54bc7b60aeaed5a35886" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul> <li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=e9b6452ada37d1a15efef5e85fe4e450" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div> </div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site --> </div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1521571149" width="2" height="1" alt="" /></div> <div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1521784158" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no"> <div id="screen__mode" class="no">
<span class="visible-xs"></span> <span class="visible-xs"></span>
<span class="visible-sm"></span> <span class="visible-sm"></span>

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=0b96dfdde10e54bc7b60aeaed5a35886" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul> <li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=e9b6452ada37d1a15efef5e85fe4e450" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div> </div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site --> </div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1521571149" width="2" height="1" alt="" /></div> <div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1521784158" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no"> <div id="screen__mode" class="no">
<span class="visible-xs"></span> <span class="visible-xs"></span>
<span class="visible-sm"></span> <span class="visible-sm"></span>

@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>documentation:2.0:confignginx</title> <title>documentation:2.0:confignginx</title>
<meta name="generator" content="DokuWiki"/> <meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/> <meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,confignginx"/> <meta name="keywords" content="documentation,2.0,confignginx"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/> <link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="confignginx.html"/> <link rel="start" href="confignginx.html"/>
@ -74,11 +74,11 @@
<div class="level2"> <div class="level2">
<p> <p>
To use Nginx, you must install LemonLDAP::NG FastCGI server, which is not installed by lemonldap-ng metapackage. To use Nginx, you must install LemonLDAP::NG FastCGI server or use <code>llngapp.psgi</code> <em>(provided in examples)</em> with a PSGI server. See <a href="psgi.html" class="wikilink1" title="documentation:2.0:psgi">Advanced PSGI usage</a>.
</p> </p>
</div> </div>
<!-- EDIT2 SECTION "FastCGI server" [43-184] --> <!-- EDIT2 SECTION "FastCGI server" [43-236] -->
<h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3> <h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3>
<div class="level3"> <div class="level3">
<pre class="code">apt install lemonldap-ng-fastcgi-server</pre> <pre class="code">apt install lemonldap-ng-fastcgi-server</pre>
@ -90,7 +90,7 @@ Enable and start the service :
systemctl start llng-fastcgi-server</pre> systemctl start llng-fastcgi-server</pre>
</div> </div>
<!-- EDIT3 SECTION "Debian/Ubuntu" [185-385] --> <!-- EDIT3 SECTION "Debian/Ubuntu" [237-437] -->
<h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3> <h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3>
<div class="level3"> <div class="level3">
<pre class="code">yum install lemonldap-ng-fastcgi-server</pre> <pre class="code">yum install lemonldap-ng-fastcgi-server</pre>
@ -102,7 +102,7 @@ Enable and start the service :
systemctl start llng-fastcgi-server</pre> systemctl start llng-fastcgi-server</pre>
</div> </div>
<!-- EDIT4 SECTION "Red Hat/CentOS" [386-587] --> <!-- EDIT4 SECTION "Red Hat/CentOS" [438-639] -->
<h2 class="sectionedit5" id="files">Files</h2> <h2 class="sectionedit5" id="files">Files</h2>
<div class="level2"> <div class="level2">
@ -115,7 +115,7 @@ You have to include them in Nginx main configuration.
</p> </p>
</div> </div>
<!-- EDIT5 SECTION "Files" [588-810] --> <!-- EDIT5 SECTION "Files" [640-862] -->
<h3 class="sectionedit6" id="debianubuntu1">Debian/Ubuntu</h3> <h3 class="sectionedit6" id="debianubuntu1">Debian/Ubuntu</h3>
<div class="level3"> <div class="level3">
@ -136,7 +136,7 @@ ln -s /etc/nginx/sites-available/portal-nginx.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/test-nginx.conf /etc/nginx/sites-enabled/</pre> ln -s /etc/nginx/sites-available/test-nginx.conf /etc/nginx/sites-enabled/</pre>
</div> </div>
<!-- EDIT6 SECTION "Debian/Ubuntu" [811-1569] --> <!-- EDIT6 SECTION "Debian/Ubuntu" [863-1621] -->
<h3 class="sectionedit7" id="red_hatcentos1">Red Hat/CentOS</h3> <h3 class="sectionedit7" id="red_hatcentos1">Red Hat/CentOS</h3>
<div class="level3"> <div class="level3">
@ -149,6 +149,6 @@ ln -s /etc/lemonldap-ng/portal-nginx.conf /etc/nginx/conf.d/
ln -s /etc/lemonldap-ng/test-nginx.conf /etc/nginx/conf.d/</pre> ln -s /etc/lemonldap-ng/test-nginx.conf /etc/nginx/conf.d/</pre>
</div> </div>
<!-- EDIT7 SECTION "Red Hat/CentOS" [1570-] --></div> <!-- EDIT7 SECTION "Red Hat/CentOS" [1622-] --></div>
</body> </body>
</html> </html>

@ -48,11 +48,11 @@
<div class="level1"> <div class="level1">
<p> <p>
<a href="https://metacpan.org/release/Plack" class="urlextern" title="https://metacpan.org/release/Plack" rel="nofollow">Plack</a> is a powerful engine that powers many very fast <a href="http://plackperl.org/#servers" class="urlextern" title="http://plackperl.org/#servers" rel="nofollow">servers</a>. LLNG uses some Plack libraries to run as FastCGI server. It can so easily be launched on these servers. <a href="https://metacpan.org/release/Plack" class="urlextern" title="https://metacpan.org/release/Plack" rel="nofollow">Plack</a> is a powerful engine that powers many very fast <a href="http://plackperl.org/#servers" class="urlextern" title="http://plackperl.org/#servers" rel="nofollow">servers</a>. LLNG uses some Plack libraries to run as FastCGI server. It can so easily be launched on these servers. See also <a href="psgi.html" class="wikilink1" title="documentation:2.0:psgi">Advanced PSGI usage</a> if you want to replace LLNG FastCGI server.
</p> </p>
</div> </div>
<!-- EDIT1 SECTION "Deploy LemonLDAP::NG on a Plack server" [1-295] --> <!-- EDIT1 SECTION "Deploy LemonLDAP::NG on a Plack server" [1-377] -->
<h2 class="sectionedit2" id="complete_example">Complete example</h2> <h2 class="sectionedit2" id="complete_example">Complete example</h2>
<div class="level2"> <div class="level2">
<dl class="file"> <dl class="file">
@ -116,6 +116,6 @@ Launch it with <a href="https://github.com/miyagawa/Starman" class="urlextern" t
<pre class="code :bash"><span class="co4">$ </span>starman <span class="re5">--port</span> <span class="nu0">80</span> <span class="re5">--workers</span> <span class="nu0">32</span> llapp.psgi</pre> <pre class="code :bash"><span class="co4">$ </span>starman <span class="re5">--port</span> <span class="nu0">80</span> <span class="re5">--workers</span> <span class="nu0">32</span> llapp.psgi</pre>
</div> </div>
<!-- EDIT2 SECTION "Complete example" [296-] --></div> <!-- EDIT2 SECTION "Complete example" [378-] --></div>
</body> </body>
</html> </html>

@ -0,0 +1,130 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>documentation:2.0:highperfnginxhandler</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,highperfnginxhandler"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="highperfnginxhandler.html"/>
<link rel="contents" href="highperfnginxhandler.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else -->
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<!-- //endif -->
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:highperfnginxhandler","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script>
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script>
<!-- //endif -->
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script>
<!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="high_performance_handler_for_nginx">High performance handler for Nginx</h1>
<div class="level1">
<p>
By default, LLNG-FastCGI-Server provides a FastCGI server that handles all LLNG services using a FastCGI socket.
</p>
<p>
To increase handler performances, It can be replaced by any Plack family server using for examle this simple app:
</p>
<dl class="file">
<dt><a href="_export/code/documentation/2.0/highperfnginxhandler/codeblock.0.code" title="Download Snippet" class="mediafile mf_psgi">app.psgi</a></dt>
<dd><pre class="code file perl"><a href="http://perldoc.perl.org/functions/require.html"><span class="kw3">require</span></a> Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">Server</span><span class="sy0">::</span><span class="me2">Nginx</span><span class="sy0">;</span>
Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">Server</span><span class="sy0">::</span><span class="me2">Nginx</span><span class="sy0">-&gt;</span><span class="me1">run</span><span class="br0">&#40;</span> <span class="br0">&#123;</span><span class="br0">&#125;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre>
</dd></dl>
<p>
Example to launch it:
</p>
<ul>
<li class="level1"><div class="li"> <a href="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" class="urlextern" title="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" rel="nofollow">uWSGI</a> <em>(probably the fastest)</em>: <strong>see below</strong></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/distribution/Starman/script/starman" class="urlextern" title="https://metacpan.org/pod/distribution/Starman/script/starman" rel="nofollow">Starman</a> <em>(“Prefork” server)</em>: <code>plackup -s Starman –listen 127.0.0.1:9090 app.psgi</code></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/twiggy" class="urlextern" title="https://metacpan.org/pod/twiggy" rel="nofollow">Twiggy</a> <em>(“Event” server)</em>: <code>plackup -s Twiggy –listen 127.0.0.1:9090 app.psgi</code></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/Twiggy::Prefork" class="urlextern" title="https://metacpan.org/pod/Twiggy::Prefork" rel="nofollow">Twiggy::Prefork</a> <em>(“Event+Prefork” server)</em>: <code>plackup -s Twiggy::Prefork –listen 127.0.0.1:9090 app.psgi</code></div>
</li>
</ul>
<p>
You must so remplace <code>lmauth</code> configuration in Nginx configuration file:
</p>
<pre class="code file nginx"> location = /lmauth {
internal;
proxy_pass http://127.0.0.1:9090/;
&nbsp;
# Drop post datas
proxy_pass_request_body off;
proxy_set_header Content-Length &quot;&quot;;
&nbsp;
# Keep original hostname
proxy_set_header Host $http_host;
&nbsp;
# Keep original request (LLNG server will received /llauth)
proxy_set_header X-Original_Uri $request_uri;
}
...</pre>
</div>
<!-- EDIT1 SECTION "High performance handler for Nginx" [1-1440] -->
<h2 class="sectionedit2" id="using_uwsgi">Using uWSGI</h2>
<div class="level2">
<p>
This configuration requires uWSGI, uWSGI PSGI plugin and Nginx uwsgi module.
</p>
<pre class="code bash"><span class="co4">$ </span>uwsgi <span class="re5">--plugins</span> psgi <span class="re5">--socket</span> :<span class="nu0">5000</span> <span class="re5">--psgi</span> llng-server.psgi</pre>
<p>
Nginx configuration:
</p>
<pre class="code file nginx">upstream uwsgi-test {
server 127.0.0.1:5000;
}
&nbsp;
server {
location = /lmauth {
internal;
include uwsgi_params;
uwsgi_pass_request_body off;
uwsgi_param CONTENT_LENGTH &quot;&quot;;
uwsgi_param HOST $http_host;
uwsgi_param X_ORIGINAL_URI $request_uri;
uwsgi_modifier1 5;
uwsgi_pass uwsgi-test;
}
...
}</pre>
</div>
<!-- EDIT2 SECTION "Using uWSGI" [1441-] --></div>
</body>
</html>

@ -0,0 +1,80 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>documentation:2.0:managertests</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,managertests"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="managertests.html"/>
<link rel="contents" href="managertests.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else -->
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<!-- //endif -->
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:managertests","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script>
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script>
<!-- //endif -->
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script>
<!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="ignore_some_manager_tests">Ignore some manager tests</h1>
<div class="level1">
<p>
Each time you save a configuration, Manager launch a lot of tests:
</p>
<ul>
<li class="level1"><div class="li"> unit tests for each key: they are declared in Lemonldap::NG::Manager::Attributes <em>(source Lemonldap::NG::Manager::Build::Attributes)</em></div>
</li>
<li class="level1"><div class="li"> more advanced tests declared in Lemonldap::NG::Manager::Conf::Tests</div>
</li>
</ul>
<p>
In some case <em>(conf overridden in INI file,…)</em>, you may have to ignore some of them. You just have to list them <em>(space separated)</em> in a special key in <code>lemonldap-ng.ini</code>, section <code>[Manager]</code>:
</p>
<ul>
<li class="level1"><div class="li"> <code>skippedUnitTests</code> for unit tests</div>
</li>
<li class="level1"><div class="li"> <code>skippedGlobalTests</code> for global tests</div>
</li>
</ul>
<p>
Example:
</p>
<pre class="code file ini"><span class="re0"><span class="br0">&#91;</span>Manager<span class="br0">&#93;</span></span>
<span class="re1">skippedUnitTests</span> <span class="sy0">=</span><span class="re2"> grantSessionRules portalSkinRules</span>
<span class="re1">skippedGlobalTests</span> <span class="sy0">=</span><span class="re2"> testApacheSession</span></pre>
</div>
</div>
</body>
</html>

@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>documentation:2.0:performances</title> <title>documentation:2.0:performances</title>
<meta name="generator" content="DokuWiki"/> <meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/> <meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,performances"/> <meta name="keywords" content="documentation,2.0,performances"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/> <link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="performances.html"/> <link rel="start" href="performances.html"/>
@ -110,6 +110,10 @@ To bypass this, you can:
<h2 class="sectionedit3" id="handler_performance">Handler performance</h2> <h2 class="sectionedit3" id="handler_performance">Handler performance</h2>
<div class="level2"> <div class="level2">
<p>
For Nginx, you can use another auth server instead of llng-fastcgi-server. See: <a href="highperfnginxhandler.html" class="wikilink1" title="documentation:2.0:highperfnginxhandler">High performance handler for Nginx</a>.
</p>
<p> <p>
To increase handler performance, you can disable “Sessions activity timeout” To prevent it from writing to the session database. To increase handler performance, you can disable “Sessions activity timeout” To prevent it from writing to the session database.
</p> </p>
@ -119,7 +123,7 @@ Handlers check rights and calculate headers for each HTTP hit. So to improve per
</p> </p>
</div> </div>
<!-- EDIT3 SECTION "Handler performance" [659-986] --> <!-- EDIT3 SECTION "Handler performance" [659-1128] -->
<h3 class="sectionedit4" id="macros_and_groups">Macros and groups</h3> <h3 class="sectionedit4" id="macros_and_groups">Macros and groups</h3>
<div class="level3"> <div class="level3">
@ -180,7 +184,7 @@ admin <span class="sy0">-&gt;</span> <span class="re0">$uid</span> <span class="
</div><div class="noteimportant">Macros and groups are computed in alphanumeric order, that is, in the order they are displayed in the manager. For example, macro “macro1” will be computed before macro “macro2”: so, expression of macro2 may involve value of macro1. As same for groups: a group rule may involve another, previously computed group. </div><div class="noteimportant">Macros and groups are computed in alphanumeric order, that is, in the order they are displayed in the manager. For example, macro “macro1” will be computed before macro “macro2”: so, expression of macro2 may involve value of macro1. As same for groups: a group rule may involve another, previously computed group.
</div> </div>
</div> </div>
<!-- EDIT4 SECTION "Macros and groups" [987-3081] --> <!-- EDIT4 SECTION "Macros and groups" [1129-3223] -->
<h3 class="sectionedit5" id="local_macros">Local macros</h3> <h3 class="sectionedit5" id="local_macros">Local macros</h3>
<div class="level3"> <div class="level3">
@ -194,12 +198,12 @@ Display<span class="sy0">-</span>Name <span class="sy0">-&gt;</span> <span class
<div class="notetip">Note that this feature is interesting only for the Lemonldap::NG systems protecting a high number of applications <div class="notetip">Note that this feature is interesting only for the Lemonldap::NG systems protecting a high number of applications
</div> </div>
</div> </div>
<!-- EDIT5 SECTION "Local macros" [3082-3743] --> <!-- EDIT5 SECTION "Local macros" [3224-3885] -->
<h2 class="sectionedit6" id="portal_performances">Portal performances</h2> <h2 class="sectionedit6" id="portal_performances">Portal performances</h2>
<div class="level2"> <div class="level2">
</div> </div>
<!-- EDIT6 SECTION "Portal performances" [3744-3776] --> <!-- EDIT6 SECTION "Portal performances" [3886-3918] -->
<h3 class="sectionedit7" id="general_performances">General performances</h3> <h3 class="sectionedit7" id="general_performances">General performances</h3>
<div class="level3"> <div class="level3">
@ -222,7 +226,7 @@ By default it uses local storage to store its tokens. If you have more than 1 po
</div> </div>
</div> </div>
<!-- EDIT7 SECTION "General performances" [3777-4643] --> <!-- EDIT7 SECTION "General performances" [3919-4785] -->
<h3 class="sectionedit8" id="apachesession_performances">Apache::Session performances</h3> <h3 class="sectionedit8" id="apachesession_performances">Apache::Session performances</h3>
<div class="level3"> <div class="level3">
@ -334,7 +338,7 @@ This test isn&#039;t a “only-backend” test but embed some LLNG methods, so r
<td class="col0 centeralign" colspan="8"> <em>The source of this test is available in sources: e2e-tests/sbperf.pl</em> </td> <td class="col0 centeralign" colspan="8"> <em>The source of this test is available in sources: e2e-tests/sbperf.pl</em> </td>
</tr> </tr>
</table></div> </table></div>
<!-- EDIT9 TABLE [7534-9437] --><ul> <!-- EDIT9 TABLE [7676-9579] --><ul>
<li class="level1"><div class="li"> <em><strong>(1) :</strong> “purge” test is done with Apache::Session::Browseable-1.2.5 and LLG-2.0. Earlier results are not so good.</em></div> <li class="level1"><div class="li"> <em><strong>(1) :</strong> “purge” test is done with Apache::Session::Browseable-1.2.5 and LLG-2.0. Earlier results are not so good.</em></div>
</li> </li>
<li class="level1"><div class="li"> <em><strong>(2) :</strong> “purge” test is done with Apache::Session::Browseable-1.2.6 and LLG-2.0.</em></div> <li class="level1"><div class="li"> <em><strong>(2) :</strong> “purge” test is done with Apache::Session::Browseable-1.2.6 and LLG-2.0.</em></div>
@ -358,7 +362,7 @@ Analysis:
</ul> </ul>
</div> </div>
<!-- EDIT8 SECTION "Apache::Session performances" [4644-10215] --> <!-- EDIT8 SECTION "Apache::Session performances" [4786-10357] -->
<h3 class="sectionedit10" id="ldap_performances">LDAP performances</h3> <h3 class="sectionedit10" id="ldap_performances">LDAP performances</h3>
<div class="level3"> <div class="level3">
@ -395,12 +399,12 @@ Now ldapgroups contains “admin su”
</div> </div>
</div> </div>
<!-- EDIT10 SECTION "LDAP performances" [10216-11345] --> <!-- EDIT10 SECTION "LDAP performances" [10358-11487] -->
<h2 class="sectionedit11" id="manager_performances">Manager performances</h2> <h2 class="sectionedit11" id="manager_performances">Manager performances</h2>
<div class="level2"> <div class="level2">
</div> </div>
<!-- EDIT11 SECTION "Manager performances" [11346-11379] --> <!-- EDIT11 SECTION "Manager performances" [11488-11521] -->
<h3 class="sectionedit12" id="disable_unused_modules">Disable unused modules</h3> <h3 class="sectionedit12" id="disable_unused_modules">Disable unused modules</h3>
<div class="level3"> <div class="level3">
@ -411,7 +415,7 @@ In lemonldap-ng.ini, set only modules that you will use. By default, configurati
<span class="re1">enabledModules</span> <span class="sy0">=</span><span class="re2"> conf, sessions</span></pre> <span class="re1">enabledModules</span> <span class="sy0">=</span><span class="re2"> conf, sessions</span></pre>
</div> </div>
<!-- EDIT12 SECTION "Disable unused modules" [11380-11626] --> <!-- EDIT12 SECTION "Disable unused modules" [11522-11768] -->
<h3 class="sectionedit13" id="use_static_html_files">Use static HTML files</h3> <h3 class="sectionedit13" id="use_static_html_files">Use static HTML files</h3>
<div class="level3"> <div class="level3">
@ -438,6 +442,6 @@ So manager <abbr title="HyperText Markup Language">HTML</abbr> templates will be
</p> </p>
</div> </div>
<!-- EDIT13 SECTION "Use static HTML files" [11627-] --></div> <!-- EDIT13 SECTION "Use static HTML files" [11769-] --></div>
</body> </body>
</html> </html>

@ -0,0 +1,117 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>documentation:2.0:psgi</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,psgi"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="psgi.html"/>
<link rel="contents" href="psgi.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else -->
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<!-- //endif -->
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:psgi","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script>
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script>
<!-- //endif -->
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script>
<!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="advanced_psgi_usage">Advanced PSGI usage</h1>
<div class="level1">
<p>
LLNG is build on <a href="http://plackperl.org/" class="urlextern" title="http://plackperl.org/" rel="nofollow">Plack</a>, so it can be used with any compatible server:
</p>
<ul>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/starman" class="urlextern" title="https://metacpan.org/pod/starman" rel="nofollow">Starman</a></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/twiggy" class="urlextern" title="https://metacpan.org/pod/twiggy" rel="nofollow">Twiggy</a></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/Twiggy::Prefork" class="urlextern" title="https://metacpan.org/pod/Twiggy::Prefork" rel="nofollow">Twiggy::Prefork</a></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/feersum" class="urlextern" title="https://metacpan.org/pod/feersum" rel="nofollow">Starman</a></div>
</li>
<li class="level1"><div class="li"> uWSGI using <a href="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" class="urlextern" title="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" rel="nofollow">uWSGI PSGI plugin</a></div>
</li>
</ul>
<p>
uWSGI may provide the highest performance.
</p>
</div>
<!-- EDIT1 SECTION "Advanced PSGI usage" [1-477] -->
<h2 class="sectionedit2" id="fastcgi_server_replacement">FastCGI server replacement</h2>
<div class="level2">
<p>
A <code>llng-server.psgi</code> is provided in example directory. It is designed to replace exactly FastCGI server. You can use it :
</p>
<ul>
<li class="level1"><div class="li"> with a FCGI Plack server, but you just have to change llng-fastcgi-server engine <em>(in /etc/default/llng-fastcgi-server)</em> to have the same result</div>
</li>
<li class="level1"><div class="li"> with a HTTP Plack server, not yet tested</div>
</li>
<li class="level1"><div class="li"> with uWSGI <em><strong>(see below)</strong></em></div>
</li>
</ul>
<div class="noteimportant">Starman, Twiggy,… are HTTP servers, not FCGI ones !
</div>
<p>
You can also replace only a part of it to create a specialized FastCGI server (portal,…). Look at <code>llng-server.psgi</code> example and take the part you want to use.
</p>
<p>
There are also some other psgi files in examples directory.
</p>
<p>
See also <a href="highperfnginxhandler.html" class="wikilink1" title="documentation:2.0:highperfnginxhandler">High performance handler for Nginx</a>
</p>
</div>
<!-- EDIT2 SECTION "FastCGI server replacement" [478-1265] -->
<h3 class="sectionedit3" id="using_uwsgi">Using uWSGI</h3>
<div class="level3">
<p>
You must install uWSGI PSGI plugin. Then for example, launch llng-server.psgi <em>(simple example)</em>:
</p>
<pre class="code">uwsgi --plugins psgi --socket :5000 --psgi e2e-tests/llng-server.psgi</pre>
<p>
You will find in LLNG Nginx configuration files some comments that explain how to configure Nginx to use uWSGI instead of LLNG FastCGI server.
</p>
</div>
<!-- EDIT3 SECTION "Using uWSGI" [1266-] --></div>
</body>
</html>

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=0b96dfdde10e54bc7b60aeaed5a35886" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul> <li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=e9b6452ada37d1a15efef5e85fe4e450" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div> </div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site --> </div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1521571168" width="2" height="1" alt="" /></div> <div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1521784179" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no"> <div id="screen__mode" class="no">
<span class="visible-xs"></span> <span class="visible-xs"></span>
<span class="visible-sm"></span> <span class="visible-sm"></span>

@ -743,6 +743,10 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</li> </li>
<li class="level1"><div class="li"> <a href="fastcgi.html" class="wikilink1" title="documentation:2.0:fastcgi">Fast CGI support</a></div> <li class="level1"><div class="li"> <a href="fastcgi.html" class="wikilink1" title="documentation:2.0:fastcgi">Fast CGI support</a></div>
</li> </li>
<li class="level1"><div class="li"> <a href="psgi.html" class="wikilink1" title="documentation:2.0:psgi">Advanced PSGI usage</a></div>
</li>
<li class="level1"><div class="li"> <a href="managertests.html" class="wikilink1" title="documentation:2.0:managertests">Ignore some manager tests</a></div>
</li>
<li class="level1"><div class="li"> <a href="parameterlist.html" class="wikilink1" title="documentation:2.0:parameterlist">See full parameters list</a></div> <li class="level1"><div class="li"> <a href="parameterlist.html" class="wikilink1" title="documentation:2.0:parameterlist">See full parameters list</a></div>
</li> </li>
</ul> </ul>
@ -752,7 +756,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p> </p>
</div> </div>
<!-- EDIT18 SECTION "Advanced features" [13144-14205] --> <!-- EDIT18 SECTION "Advanced features" [13144-14285] -->
<h2 class="sectionedit19" id="mini_howtos">Mini howtos</h2> <h2 class="sectionedit19" id="mini_howtos">Mini howtos</h2>
<div class="level2"> <div class="level2">
@ -783,7 +787,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p> </p>
</div> </div>
<!-- EDIT19 SECTION "Mini howtos" [14206-14875] --> <!-- EDIT19 SECTION "Mini howtos" [14286-14955] -->
<h2 class="sectionedit20" id="exploitation">Exploitation</h2> <h2 class="sectionedit20" id="exploitation">Exploitation</h2>
<div class="level2"> <div class="level2">
@ -816,7 +820,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p> </p>
</div> </div>
<!-- EDIT20 SECTION "Exploitation" [14876-15296] --> <!-- EDIT20 SECTION "Exploitation" [14956-15376] -->
<h2 class="sectionedit21" id="bug_report">Bug report</h2> <h2 class="sectionedit21" id="bug_report">Bug report</h2>
<div class="level2"> <div class="level2">
@ -825,7 +829,7 @@ See <a href="bugreport.html" class="wikilink1" title="bugreport">How to report a
</p> </p>
</div> </div>
<!-- EDIT21 SECTION "Bug report" [15297-15361] --> <!-- EDIT21 SECTION "Bug report" [15377-15441] -->
<h2 class="sectionedit22" id="developer_corner">Developer corner</h2> <h2 class="sectionedit22" id="developer_corner">Developer corner</h2>
<div class="level2"> <div class="level2">
@ -896,6 +900,6 @@ To translate this doc (Manager help):
</ul> </ul>
</div> </div>
<!-- EDIT22 SECTION "Developer corner" [15362-] --></div> <!-- EDIT22 SECTION "Developer corner" [15442-] --></div>
</body> </body>
</html> </html>

@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>documentation:2.0:status</title> <title>documentation:2.0:status</title>
<meta name="generator" content="DokuWiki"/> <meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/> <meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,status"/> <meta name="keywords" content="documentation,2.0,status"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/> <link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="status.html"/> <link rel="start" href="status.html"/>
@ -49,25 +49,63 @@
<div> <div>
<ul class="toc"> <ul class="toc">
<li class="level1"><div class="li"><a href="#presentation">Presentation</a></div></li> <li class="level1"><div class="li"><a href="#portal_status_experimental">Portal Status (experimental)</a></div>
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div>
<ul class="toc"> <ul class="toc">
<li class="level2"><div class="li"><a href="#apache">Apache</a></div></li> <li class="level2"><div class="li"><a href="#configuration">Configuration</a></div></li>
<li class="level2"><div class="li"><a href="#lemonldapng">LemonLDAP::NG</a></div></li> </ul>
</li>
<li class="level1"><div class="li"><a href="#handler_status">Handler Status</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#presentation">Presentation</a></div></li>
<li class="level2"><div class="li"><a href="#configuration1">Configuration</a></div>
<ul class="toc">
<li class="level3"><div class="li"><a href="#apache">Apache</a></div></li>
<li class="level3"><div class="li"><a href="#nginx">Nginx</a></div></li>
<li class="level3"><div class="li"><a href="#lemonldapng">LemonLDAP::NG</a></div></li>
</ul></li>
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
</div> </div>
<!-- TOC END --> <!-- TOC END -->
<h1 class="sectionedit1" id="handler_status">Handler Status</h1> <h1 class="sectionedit1" id="status_pages">Status pages</h1>
<div class="level1"> <div class="level1">
</div> </div>
<!-- EDIT1 SECTION "Handler Status" [1-30] --> <!-- EDIT1 SECTION "Status pages" [1-28] -->
<h2 class="sectionedit2" id="presentation">Presentation</h2> <h2 class="sectionedit2" id="portal_status_experimental">Portal Status (experimental)</h2>
<div class="level2"> <div class="level2">
<p>
The portal displays in JSON format its activity. Unlike handler, this is not the full activity of the server, but for now just the activity of 1 thread. This can give a view to all returned codes.
</p>
</div>
<!-- EDIT2 SECTION "Portal Status (experimental)" [29-268] -->
<h3 class="sectionedit3" id="configuration">Configuration</h3>
<div class="level3">
<p>
* Set <code>portalStatus = 1</code> in lemonldap-ng.ini file (section <code>[Portal]</code>)
* Protect <a href="http://portal/portalStatus" class="urlextern" title="http://portal/portalStatus" rel="nofollow">http://portal/portalStatus</a> using your webserver configuration
</p>
<p>
Status is displayed by calling this <abbr title="Uniform Resource Locator">URL</abbr>.
</p>
</div>
<!-- EDIT3 SECTION "Configuration" [269-485] -->
<h2 class="sectionedit4" id="handler_status">Handler Status</h2>
<div class="level2">
<div class="noteimportant">Since 2.0, Handler status no more collects Portal returned codes.
</div>
</div>
<!-- EDIT4 SECTION "Handler Status" [486-603] -->
<h3 class="sectionedit5" id="presentation">Presentation</h3>
<div class="level3">
<p> <p>
When status feature is activated, Handlers and portal will collect statistics and save them in their local cache. This means that if several Handlers are deployed, each will manage its own statistics. When status feature is activated, Handlers and portal will collect statistics and save them in their local cache. This means that if several Handlers are deployed, each will manage its own statistics.
</p> </p>
@ -92,14 +130,14 @@ Example of status page:
</p> </p>
</div> </div>
<!-- EDIT2 SECTION "Presentation" [31-1206] --> <!-- EDIT5 SECTION "Presentation" [604-1777] -->
<h2 class="sectionedit3" id="configuration">Configuration</h2> <h3 class="sectionedit6" id="configuration1">Configuration</h3>
<div class="level2"> <div class="level3">
</div> </div>
<!-- EDIT3 SECTION "Configuration" [1207-1233] -->
<h3 class="sectionedit4" id="apache">Apache</h3> <h4 id="apache">Apache</h4>
<div class="level3"> <div class="level4">
<p> <p>
You need to give access to status path in the Handler Apache configuration: You need to give access to status path in the Handler Apache configuration:
@ -117,9 +155,31 @@ Then restart Apache.
<div class="notetip">You should change the <code>Allow</code> directive to match administration <abbr title="Internet Protocol">IP</abbr>, or use another Apache protection mean. <div class="notetip">You should change the <code>Allow</code> directive to match administration <abbr title="Internet Protocol">IP</abbr>, or use another Apache protection mean.
</div> </div>
</div> </div>
<!-- EDIT4 SECTION "Apache" [1234-1705] -->
<h3 class="sectionedit5" id="lemonldapng">LemonLDAP::NG</h3> <h4 id="nginx">Nginx</h4>
<div class="level3"> <div class="level4">
<p>
You need to give access to status path in the Handler Nginx configuration:
</p>
<pre class="code file nginx">server {
listen __PORT__;
server_name reload.__DNSDOMAIN__;
root /var/www/html;
...
location = /status {
allow 127.0.0.1;
deny all;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:__FASTCGISOCKDIR__/llng-fastcgi.sock;
fastcgi_param LLTYPE status;
}
}</pre>
</div>
<h4 id="lemonldapng">LemonLDAP::NG</h4>
<div class="level4">
<p> <p>
Edit <code>lemonldap-ng.ini</code>, and activate status in the <code>handler</code> section: Edit <code>lemonldap-ng.ini</code>, and activate status in the <code>handler</code> section:
@ -130,10 +190,10 @@ Edit <code>lemonldap-ng.ini</code>, and activate status in the <code>handler</co
<span class="re1">status</span> <span class="sy0">=</span><span class="re2"> 1</span></pre> <span class="re1">status</span> <span class="sy0">=</span><span class="re2"> 1</span></pre>
<p> <p>
Then restart Apache. Then restart webserver.
</p> </p>
</div> </div>
<!-- EDIT5 SECTION "LemonLDAP::NG" [1706-] --></div> <!-- EDIT6 SECTION "Configuration" [1778-] --></div>
</body> </body>
</html> </html>

@ -106,7 +106,7 @@ In the manager (advanced parameters), you just have to enable it:
<div class="level2"> <div class="level2">
<p> <p>
If you&#039;ve enabled self registration, users can get their key using <a href="https://portal/2fregisters" class="urlextern" title="https://portal/2fregisters" rel="nofollow">https://portal/2fregisters.html</a> If you&#039;ve enabled self registration, users can get their key using <a href="https://portal/totpregister.html" class="urlextern" title="https://portal/totpregister.html" rel="nofollow">https://portal/totpregister.html</a>
</p> </p>
</div> </div>

@ -127,7 +127,7 @@ In the manager (second factors), you just have to enable it:
<div class="level2"> <div class="level2">
<p> <p>
If you&#039;ve enabled self registration, users can register their FIDO key using <a href="https://portal/2fregisters" class="urlextern" title="https://portal/2fregisters" rel="nofollow">https://portal/2fregisters</a> If you&#039;ve enabled self registration, users can register their FIDO key using <a href="https://portal/u2fregister.html" class="urlextern" title="https://portal/u2fregister.html" rel="nofollow">https://portal/u2fregister.html</a>
</p> </p>
</div> </div>

@ -1,11 +1,11 @@
20/03/18 19:40 23/03/18 06:51
Données du projet Données du projet
Segments Mots Caractères (sans espaces) Caractères (avec espaces) Segments Mots Caractères (sans espaces) Caractères (avec espaces)
Total : 18128 77803 543797 593640 Total : 18311 78655 549725 600121
Restants : 10341 40622 315856 337476 Restants : 10509 41446 321596 343754
Segments uniques : 8934 56748 368796 412764 Segments uniques : 9035 57397 373027 417512
Segments uniques restants : 5316 28374 204418 224184 Segments uniques restants : 5417 29023 208649 228932
Statistiques par fichiers : Statistiques par fichiers :
@ -104,8 +104,8 @@ pages/documentation/current/cda.html
pages/documentation/current/changeconfbackend.html 48 21 32 14 170 45 135 26 1234 484 1011 333 1323 486 1094 333 pages/documentation/current/changeconfbackend.html 48 21 32 14 170 45 135 26 1234 484 1011 333 1323 486 1094 333
pages/documentation/current/configapache.html 34 19 25 13 194 65 173 49 1284 470 1125 339 1390 501 1231 370 pages/documentation/current/configapache.html 34 19 25 13 194 65 173 49 1284 470 1125 339 1390 501 1231 370
pages/documentation/current/configlocation.html 456 253 334 175 2318 915 2025 754 16255 7892 13863 6344 18069 8480 15516 6854 pages/documentation/current/configlocation.html 456 253 334 175 2318 915 2025 754 16255 7892 13863 6344 18069 8480 15516 6854
pages/documentation/current/confignginx.html 46 32 24 17 260 193 204 148 1923 1524 1524 1189 2048 1605 1634 1255 pages/documentation/current/confignginx.html 49 35 27 20 271 204 215 159 1982 1583 1583 1248 2113 1670 1699 1320
pages/documentation/current/configplack.html 54 51 43 42 247 240 217 213 1765 1705 1522 1477 1904 1844 1661 1616 pages/documentation/current/configplack.html 57 54 44 43 264 257 230 226 1856 1796 1582 1537 2007 1947 1733 1688
pages/documentation/current/configvhost.html 248 147 105 60 1000 440 614 232 7971 4616 4339 2261 8686 4861 4789 2386 pages/documentation/current/configvhost.html 248 147 105 60 1000 440 614 232 7971 4616 4339 2261 8686 4861 4789 2386
pages/documentation/current/customfunctions.html 71 41 44 24 372 156 300 114 2599 1232 1999 829 2841 1313 2223 906 pages/documentation/current/customfunctions.html 71 41 44 24 372 156 300 114 2599 1232 1999 829 2841 1313 2223 906
pages/documentation/current/customhandlers.html 58 54 42 42 430 419 380 380 2693 2586 2349 2349 2980 2873 2619 2619 pages/documentation/current/customhandlers.html 58 54 42 42 430 419 380 380 2693 2586 2349 2349 2980 2873 2619 2619
@ -146,6 +146,7 @@ pages/documentation/current/handlerarch.html
pages/documentation/current/handlerauthbasic.html 64 42 24 18 314 210 230 154 2222 1554 1359 965 2474 1719 1576 1112 pages/documentation/current/handlerauthbasic.html 64 42 24 18 314 210 230 154 2222 1554 1359 965 2474 1719 1576 1112
pages/documentation/current/header_remote_user_conversion.html 47 27 23 11 275 112 221 75 2012 1050 1455 619 2202 1114 1637 675 pages/documentation/current/header_remote_user_conversion.html 47 27 23 11 275 112 221 75 2012 1050 1455 619 2202 1114 1637 675
pages/documentation/current/highavailability.html 27 13 15 7 135 35 105 19 1057 444 777 309 1129 444 849 309 pages/documentation/current/highavailability.html 27 13 15 7 135 35 105 19 1057 444 777 309 1129 444 849 309
pages/documentation/current/highperfnginxhandler.html 62 56 38 38 266 249 204 204 2109 2005 1609 1609 2291 2173 1770 1770
pages/documentation/current/icons/access.png_documentation_2.0_start.html 38 34 9 8 87 81 26 24 659 626 219 203 668 635 225 209 pages/documentation/current/icons/access.png_documentation_2.0_start.html 38 34 9 8 87 81 26 24 659 626 219 203 668 635 225 209
pages/documentation/current/icons/colors.png_documentation_2.0_start.html 38 34 5 4 86 80 12 10 659 626 143 127 668 635 144 128 pages/documentation/current/icons/colors.png_documentation_2.0_start.html 38 34 5 4 86 80 12 10 659 626 143 127 668 635 144 128
pages/documentation/current/icons/gpg.png_documentation_2.0_start.html 38 34 6 5 87 81 14 12 635 605 131 118 644 614 132 119 pages/documentation/current/icons/gpg.png_documentation_2.0_start.html 38 34 6 5 87 81 14 12 635 605 131 118 644 614 132 119
@ -175,6 +176,7 @@ pages/documentation/current/loginhistory.html
pages/documentation/current/logoutforward.html 30 11 9 1 178 28 129 3 1065 287 633 31 1192 287 750 31 pages/documentation/current/logoutforward.html 30 11 9 1 178 28 129 3 1065 287 633 31 1192 287 750 31
pages/documentation/current/logs.html 83 73 62 56 500 447 448 400 2972 2668 2619 2344 3349 3007 2982 2669 pages/documentation/current/logs.html 83 73 62 56 500 447 448 400 2972 2668 2619 2344 3349 3007 2982 2669
pages/documentation/current/managerprotection.html 73 20 51 9 464 84 402 56 2832 698 2280 405 3146 729 2590 436 pages/documentation/current/managerprotection.html 73 20 51 9 464 84 402 56 2832 698 2280 405 3146 729 2590 436
pages/documentation/current/managertests.html 21 18 12 12 118 114 98 98 799 776 645 645 872 849 718 718
pages/documentation/current/memcachedsessionbackend.html 48 13 18 3 197 33 122 7 1568 405 840 110 1654 405 925 110 pages/documentation/current/memcachedsessionbackend.html 48 13 18 3 197 33 122 7 1568 405 840 110 1654 405 925 110
pages/documentation/current/mongodbconfbackend.html 56 46 36 36 232 221 193 193 1759 1688 1415 1415 1895 1823 1550 1550 pages/documentation/current/mongodbconfbackend.html 56 46 36 36 232 221 193 193 1759 1688 1415 1415 1895 1823 1550 1550
pages/documentation/current/mongodbsessionbackend.html 62 50 19 18 224 188 124 101 1739 1534 837 713 1842 1614 928 782 pages/documentation/current/mongodbsessionbackend.html 62 50 19 18 224 188 124 101 1739 1534 837 713 1842 1614 928 782
@ -188,12 +190,13 @@ pages/documentation/current/openidconnectclaims.html
pages/documentation/current/openidconnectservice.html 81 61 49 46 434 398 361 357 2643 2364 2042 2001 2941 2654 2326 2284 pages/documentation/current/openidconnectservice.html 81 61 49 46 434 398 361 357 2643 2364 2042 2001 2941 2654 2326 2284
pages/documentation/current/parameterlist.html 1360 580 763 553 2367 1735 1976 1661 19943 13760 16377 13100 21367 14877 17573 14195 pages/documentation/current/parameterlist.html 1360 580 763 553 2367 1735 1976 1661 19943 13760 16377 13100 21367 14877 17573 14195
pages/documentation/current/passwordstore.html 38 16 14 2 186 36 142 4 1111 323 724 37 1242 325 853 37 pages/documentation/current/passwordstore.html 38 16 14 2 186 36 142 4 1111 323 724 37 1242 325 853 37
pages/documentation/current/performances.html 301 195 208 150 1756 896 1339 779 10930 5737 8144 4876 12181 6342 9136 5415 pages/documentation/current/performances.html 305 199 210 152 1777 917 1356 796 11092 5899 8243 4975 12358 6519 9250 5529
pages/documentation/current/portal.html 120 71 51 17 488 200 339 83 3537 1906 2037 635 3820 1960 2310 688 pages/documentation/current/portal.html 120 71 51 17 488 200 339 83 3537 1906 2037 635 3820 1960 2310 688
pages/documentation/current/portalcustom.html 138 70 99 55 980 503 888 470 5385 2874 4681 2585 6196 3269 5454 2976 pages/documentation/current/portalcustom.html 138 70 99 55 980 503 888 470 5385 2874 4681 2585 6196 3269 5454 2976
pages/documentation/current/portalmenu.html 55 20 33 8 334 129 283 101 2129 889 1649 603 2376 975 1888 689 pages/documentation/current/portalmenu.html 55 20 33 8 334 129 283 101 2129 889 1649 603 2376 975 1888 689
pages/documentation/current/portalservers.html 44 34 19 19 145 133 96 96 1025 926 619 619 1106 1007 690 690 pages/documentation/current/portalservers.html 44 34 19 19 145 133 96 96 1025 926 619 619 1106 1007 690 690
pages/documentation/current/prereq.html 148 91 103 72 503 332 399 284 3864 2792 3108 2403 4112 2962 3328 2565 pages/documentation/current/prereq.html 148 91 103 72 503 332 399 284 3864 2792 3108 2403 4112 2962 3328 2565
pages/documentation/current/psgi.html 50 48 27 27 267 264 199 199 1674 1659 1094 1094 1836 1821 1255 1255
pages/documentation/current/public_pages.html 38 33 21 21 196 187 138 138 1316 1254 874 874 1393 1329 949 949 pages/documentation/current/public_pages.html 38 33 21 21 196 187 138 138 1316 1254 874 874 1393 1329 949 949
pages/documentation/current/rbac.html 87 56 56 42 472 336 389 297 2881 2006 2272 1745 3195 2225 2554 1953 pages/documentation/current/rbac.html 87 56 56 42 472 336 389 297 2881 2006 2272 1745 3195 2225 2554 1953
pages/documentation/current/redirections.html 49 20 30 12 476 213 426 193 2837 1376 2457 1200 3229 1530 2831 1354 pages/documentation/current/redirections.html 49 20 30 12 476 213 426 193 2837 1376 2457 1200 3229 1530 2831 1354
@ -219,8 +222,8 @@ pages/documentation/current/soapsessionbackend.html
pages/documentation/current/sqlconfbackend.html 110 88 69 60 416 349 321 269 2740 2403 2049 1796 3016 2637 2287 1993 pages/documentation/current/sqlconfbackend.html 110 88 69 60 416 349 321 269 2740 2403 2049 1796 3016 2637 2287 1993
pages/documentation/current/sqlsessionbackend.html 136 44 62 22 601 197 388 135 4037 1290 2353 784 4368 1415 2630 890 pages/documentation/current/sqlsessionbackend.html 136 44 62 22 601 197 388 135 4037 1290 2353 784 4368 1415 2630 890
pages/documentation/current/ssocookie.html 60 17 32 4 436 67 364 36 2393 502 1871 238 2740 530 2195 266 pages/documentation/current/ssocookie.html 60 17 32 4 436 67 364 36 2393 502 1871 238 2740 530 2195 266
pages/documentation/current/start.html 873 562 203 146 2060 1474 909 617 18131 14108 6275 4514 18851 14476 6849 4860 pages/documentation/current/start.html 879 568 203 146 2075 1489 909 617 18248 14225 6275 4514 18973 14598 6849 4860
pages/documentation/current/status.html 62 21 30 7 312 71 248 41 2008 539 1486 300 2182 565 1654 324 pages/documentation/current/status.html 96 51 48 25 449 204 355 148 2925 1410 2151 965 3197 1533 2408 1078
pages/documentation/current/totp2f.html 61 56 36 36 395 389 344 344 2437 2392 1955 1955 2744 2699 2258 2258 pages/documentation/current/totp2f.html 61 56 36 36 395 389 344 344 2437 2392 1955 1955 2744 2699 2258 2258
pages/documentation/current/u2f.html 74 66 33 33 453 438 291 291 2865 2742 1749 1749 3186 3057 1984 1984 pages/documentation/current/u2f.html 74 66 33 33 453 438 291 291 2865 2742 1749 1749 3186 3057 1984 1984
pages/documentation/current/upgrade.html 186 162 94 94 1005 956 793 793 6327 5947 4425 4425 7056 6660 5099 5099 pages/documentation/current/upgrade.html 186 162 94 94 1005 956 793 793 6327 5947 4425 4425 7056 6660 5099 5099

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=0b96dfdde10e54bc7b60aeaed5a35886" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul> <li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=e9b6452ada37d1a15efef5e85fe4e450" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div> </div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site --> </div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1521571149" width="2" height="1" alt="" /></div> <div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1521784158" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no"> <div id="screen__mode" class="no">
<span class="visible-xs"></span> <span class="visible-xs"></span>
<span class="visible-sm"></span> <span class="visible-sm"></span>

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=0b96dfdde10e54bc7b60aeaed5a35886" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul> <li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=e9b6452ada37d1a15efef5e85fe4e450" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div> </div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site --> </div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1521571149" width="2" height="1" alt="" /></div> <div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1521784158" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no"> <div id="screen__mode" class="no">
<span class="visible-xs"></span> <span class="visible-xs"></span>
<span class="visible-sm"></span> <span class="visible-sm"></span>

@ -11,7 +11,7 @@
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif --> //else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/> <meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/> <meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,confignginx"/> <meta name="keywords" content="documentation,2.0,confignginx"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/> <link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="confignginx.html"/> <link rel="start" href="confignginx.html"/>
@ -76,11 +76,11 @@
<p> <p>
To use Nginx, you must install LemonLDAP::NG FastCGI server, which is not installed by lemonldap-ng metapackage. To use Nginx, you must install LemonLDAP::NG FastCGI server or use <code>llngapp.psgi</code> <em>(provided in examples)</em> with a PSGI server. See <a href="psgi.html" class="wikilink1" title="documentation:2.0:psgi">Advanced PSGI usage</a>.
</p> </p>
</div><!-- EDIT2 SECTION "FastCGI server" [43-184] --> </div><!-- EDIT2 SECTION "FastCGI server" [43-236] -->
<h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3> <h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3>
<div class="level3"> <div class="level3">
@ -94,7 +94,7 @@ Enable and start the service :
<pre class="code">systemctl enable llng-fastcgi-server <pre class="code">systemctl enable llng-fastcgi-server
systemctl start llng-fastcgi-server</pre> systemctl start llng-fastcgi-server</pre>
</div><!-- EDIT3 SECTION "Debian/Ubuntu" [185-385] --> </div><!-- EDIT3 SECTION "Debian/Ubuntu" [237-437] -->
<h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3> <h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3>
<div class="level3"> <div class="level3">
@ -108,7 +108,7 @@ Enable and start the service :
<pre class="code">systemctl enable llng-fastcgi-server <pre class="code">systemctl enable llng-fastcgi-server
systemctl start llng-fastcgi-server</pre> systemctl start llng-fastcgi-server</pre>
</div><!-- EDIT4 SECTION "Red Hat/CentOS" [386-587] --> </div><!-- EDIT4 SECTION "Red Hat/CentOS" [438-639] -->
<h2 class="sectionedit5" id="files">Fichiers</h2> <h2 class="sectionedit5" id="files">Fichiers</h2>
<div class="level2"> <div class="level2">
@ -121,7 +121,7 @@ Depuis une installation par les sources, les fichiers de configuration de Nginx
Il faut les inclure dans la configuration de Nginx, par exemple : Il faut les inclure dans la configuration de Nginx, par exemple :
</p> </p>
</div><!-- EDIT5 SECTION "Files" [588-810] --> </div><!-- EDIT5 SECTION "Files" [640-862] -->
<h3 class="sectionedit6" id="debianubuntu1">Debian/Ubuntu</h3> <h3 class="sectionedit6" id="debianubuntu1">Debian/Ubuntu</h3>
<div class="level3"> <div class="level3">
@ -142,7 +142,7 @@ ln -s /etc/nginx/sites-available/manager-nginx.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/portal-nginx.conf /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/portal-nginx.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/test-nginx.conf /etc/nginx/sites-enabled/</pre> ln -s /etc/nginx/sites-available/test-nginx.conf /etc/nginx/sites-enabled/</pre>
</div><!-- EDIT6 SECTION "Debian/Ubuntu" [811-1569] --> </div><!-- EDIT6 SECTION "Debian/Ubuntu" [863-1621] -->
<h3 class="sectionedit7" id="red_hatcentos1">Red Hat/CentOS</h3> <h3 class="sectionedit7" id="red_hatcentos1">Red Hat/CentOS</h3>
<div class="level3"> <div class="level3">
@ -155,7 +155,7 @@ ln -s /etc/lemonldap-ng/manager-nginx.conf /etc/nginx/conf.d/
ln -s /etc/lemonldap-ng/portal-nginx.conf /etc/nginx/conf.d/ ln -s /etc/lemonldap-ng/portal-nginx.conf /etc/nginx/conf.d/
ln -s /etc/lemonldap-ng/test-nginx.conf /etc/nginx/conf.d/</pre> ln -s /etc/lemonldap-ng/test-nginx.conf /etc/nginx/conf.d/</pre>
</div><!-- EDIT7 SECTION "Red Hat/CentOS" [1570-] --> </div><!-- EDIT7 SECTION "Red Hat/CentOS" [1622-] -->
</div> </div>
</body> </body>
</html> </html>

@ -49,11 +49,11 @@
<div class="level1"> <div class="level1">
<p> <p>
<a href="https://metacpan.org/release/Plack" class="urlextern" title="https://metacpan.org/release/Plack" rel="nofollow">Plack</a> is a powerful engine that powers many very fast <a href="http://plackperl.org/#servers" class="urlextern" title="http://plackperl.org/#servers" rel="nofollow">servers</a>. LLNG uses some Plack libraries to run as FastCGI server. It can so easily be launched on these servers. <a href="https://metacpan.org/release/Plack" class="urlextern" title="https://metacpan.org/release/Plack" rel="nofollow">Plack</a> is a powerful engine that powers many very fast <a href="http://plackperl.org/#servers" class="urlextern" title="http://plackperl.org/#servers" rel="nofollow">servers</a>. LLNG uses some Plack libraries to run as FastCGI server. It can so easily be launched on these servers. See also <a href="psgi.html" class="wikilink1" title="documentation:2.0:psgi">Advanced PSGI usage</a> if you want to replace LLNG FastCGI server.
</p> </p>
</div><!-- EDIT1 SECTION "Deploy LemonLDAP::NG on a Plack server" [1-295] --> </div><!-- EDIT1 SECTION "Deploy LemonLDAP::NG on a Plack server" [1-377] -->
<h2 class="sectionedit2" id="complete_example">Complete example</h2> <h2 class="sectionedit2" id="complete_example">Complete example</h2>
<div class="level2"> <div class="level2">
@ -119,7 +119,7 @@ Launch it with <a href="https://github.com/miyagawa/Starman" class="urlextern" t
</p> </p>
<pre class="code :bash"><span class="co4">$ </span>starman <span class="re5">--port</span> <span class="nu0">80</span> <span class="re5">--workers</span> <span class="nu0">32</span> llapp.psgi</pre> <pre class="code :bash"><span class="co4">$ </span>starman <span class="re5">--port</span> <span class="nu0">80</span> <span class="re5">--workers</span> <span class="nu0">32</span> llapp.psgi</pre>
</div><!-- EDIT2 SECTION "Complete example" [296-] --> </div><!-- EDIT2 SECTION "Complete example" [378-] -->
</div> </div>
</body> </body>
</html> </html>

@ -0,0 +1,143 @@
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<title>documentation:2.0:highperfnginxhandler</title><!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,highperfnginxhandler"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="highperfnginxhandler.html"/>
<link rel="contents" href="highperfnginxhandler.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:highperfnginxhandler","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script><!-- //endif --><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script><!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="high_performance_handler_for_nginx">High performance handler for Nginx</h1>
<div class="level1">
<p>
By default, LLNG-FastCGI-Server provides a FastCGI server that handles all LLNG services using a FastCGI socket.
</p>
<p>
To increase handler performances, It can be replaced by any Plack family server using for examle this simple app:
</p>
<dl class="file">
<dt><a href="_export/code/documentation/2.0/highperfnginxhandler/codeblock.0.code" title="Download Snippet" class="mediafile mf_psgi">app.psgi</a></dt>
<dd><pre class="code file perl"><a href="http://perldoc.perl.org/functions/require.html"><span class="kw3">require</span></a> Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">Server</span><span class="sy0">::</span><span class="me2">Nginx</span><span class="sy0">;</span>
Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">Server</span><span class="sy0">::</span><span class="me2">Nginx</span><span class="sy0">-&gt;</span><span class="me1">run</span><span class="br0">(</span> <span class="br0">{</span><span class="br0">}</span> <span class="br0">)</span><span class="sy0">;</span></pre>
</dd></dl>
<p>
Example to launch it:
</p>
<ul>
<li class="level1"><div class="li"> <a href="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" class="urlextern" title="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" rel="nofollow">uWSGI</a> <em>(probably the fastest)</em>: <strong>see below</strong></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/distribution/Starman/script/starman" class="urlextern" title="https://metacpan.org/pod/distribution/Starman/script/starman" rel="nofollow">Starman</a> <em>(“Prefork” server)</em>: <code>plackup -s Starman –listen 127.0.0.1:9090 app.psgi</code></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/twiggy" class="urlextern" title="https://metacpan.org/pod/twiggy" rel="nofollow">Twiggy</a> <em>(“Event” server)</em>: <code>plackup -s Twiggy –listen 127.0.0.1:9090 app.psgi</code></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/Twiggy::Prefork" class="urlextern" title="https://metacpan.org/pod/Twiggy::Prefork" rel="nofollow">Twiggy::Prefork</a> <em>(“Event+Prefork” server)</em>: <code>plackup -s Twiggy::Prefork –listen 127.0.0.1:9090 app.psgi</code></div>
</li>
</ul>
<p>
You must so remplace <code>lmauth</code> configuration in Nginx configuration file:
</p>
<pre class="code file nginx"> location = /lmauth {
internal;
proxy_pass http://127.0.0.1:9090/;
&nbsp;
# Ignorer les données postées
proxy_pass_request_body off;
proxy_set_header Content-Length "";
&nbsp;
# Conserver le nom d'hôte original
proxy_set_header Host $http_host;
&nbsp;
# Conserver la requête originale (le serveur LLNG va recevoir /llauth)
proxy_set_header X-Original_Uri $request_uri;
}
...</pre>
</div><!-- EDIT1 SECTION "High performance handler for Nginx" [1-1440] -->
<h2 class="sectionedit2" id="using_uwsgi">Using uWSGI</h2>
<div class="level2">
<p>
This configuration requires uWSGI, uWSGI PSGI plugin and Nginx uwsgi module.
</p>
<pre class="code bash"><span class="co4">$ </span>uwsgi <span class="re5">--plugins</span> psgi <span class="re5">--socket</span> :<span class="nu0">5000</span> <span class="re5">--psgi</span> llng-server.psgi</pre>
<p>
Nginx configuration:
</p>
<pre class="code file nginx">upstream uwsgi-test {
server 127.0.0.1:5000;
}
&nbsp;
server {
location = /lmauth {
internal;
include uwsgi_params;
uwsgi_pass_request_body off;
uwsgi_param CONTENT_LENGTH "";
uwsgi_param HOST $http_host;
uwsgi_param X_ORIGINAL_URI $request_uri;
uwsgi_modifier1 5;
uwsgi_pass uwsgi-test;
}
...
}</pre>
</div><!-- EDIT2 SECTION "Using uWSGI" [1441-] -->
</div>
</body>
</html>

@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<title>documentation:2.0:managertests</title><!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,managertests"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="managertests.html"/>
<link rel="contents" href="managertests.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:managertests","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script><!-- //endif --><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script><!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="ignore_some_manager_tests">Ignore some manager tests</h1>
<div class="level1">
<p>
Each time you save a configuration, Manager launch a lot of tests:
</p>
<ul>
<li class="level1"><div class="li"> unit tests for each key: they are declared in Lemonldap::NG::Manager::Attributes <em>(source Lemonldap::NG::Manager::Build::Attributes)</em></div>
</li>
<li class="level1"><div class="li"> more advanced tests declared in Lemonldap::NG::Manager::Conf::Tests</div>
</li>
</ul>
<p>
In some case <em>(conf overridden in INI file,…)</em>, you may have to ignore some of them. You just have to list them <em>(space separated)</em> in a special key in <code>lemonldap-ng.ini</code>, section <code>[Manager]</code>:
</p>
<ul>
<li class="level1"><div class="li"> <code>skippedUnitTests</code> for unit tests</div>
</li>
<li class="level1"><div class="li"> <code>skippedGlobalTests</code> for global tests</div>
</li>
</ul>
<p>
Exemple :
</p>
<pre class="code file ini"><span class="re0"><span class="br0">[</span>Manager<span class="br0">]</span></span>
<span class="re1">skippedUnitTests</span> <span class="sy0">=</span><span class="re2"> grantSessionRules portalSkinRules</span>
<span class="re1">skippedGlobalTests</span> <span class="sy0">=</span><span class="re2"> testApacheSession</span></pre>
</div>
</div>
</body>
</html>

@ -11,7 +11,7 @@
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif --> //else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/> <meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/> <meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,performances"/> <meta name="keywords" content="documentation,2.0,performances"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/> <link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="performances.html"/> <link rel="start" href="performances.html"/>
@ -115,6 +115,12 @@ To bypass this, you can:
<p> <p>
For Nginx, you can use another auth server instead of llng-fastcgi-server. See: <a href="highperfnginxhandler.html" class="wikilink1" title="documentation:2.0:highperfnginxhandler">High performance handler for Nginx</a>.
</p>
<p>
To increase handler performance, you can disable “Sessions activity timeout” To prevent it from writing to the session database. To increase handler performance, you can disable “Sessions activity timeout” To prevent it from writing to the session database.
</p> </p>
@ -123,7 +129,7 @@ To increase handler performance, you can disable “Sessions activity timeout”
Les agents vérifient les droits et calculent les en-têtes pour chaque requête HTTP. Donc pour augmenter les performances, évitez les règles trop complexes en utilisant les macros, groupes ou macros locales. Les agents vérifient les droits et calculent les en-têtes pour chaque requête HTTP. Donc pour augmenter les performances, évitez les règles trop complexes en utilisant les macros, groupes ou macros locales.
</p> </p>
</div><!-- EDIT3 SECTION "Handler performance" [659-986] --> </div><!-- EDIT3 SECTION "Handler performance" [659-1128] -->
<h3 class="sectionedit4" id="macros_and_groups">Macros et groupes</h3> <h3 class="sectionedit4" id="macros_and_groups">Macros et groupes</h3>
<div class="level3"> <div class="level3">
@ -184,7 +190,7 @@ admin <span class="sy0">-&gt;</span> <span class="re0">$uid</span> <span class="
<div class="noteclassic">Noter que les groupes sont calculés après les macros, donc une règle de groupe peut utiliser une valeur issue d'une macro. <div class="noteclassic">Noter que les groupes sont calculés après les macros, donc une règle de groupe peut utiliser une valeur issue d'une macro.
</div><div class="noteimportant">Les macros et groupes sont calculés dans l'ordre alpha-numerique, c'est à dire dans l'ordre d'affichage dans le manager. Par exemple, la macro “macro1” sear calculée avant la macro “macro2” : donc l'expression de macro2 peut utiliser la valeur $macro1. De même pour les groupes : une règle de groupe peut en utiliser une autre calculée précédemment. </div><div class="noteimportant">Les macros et groupes sont calculés dans l'ordre alpha-numerique, c'est à dire dans l'ordre d'affichage dans le manager. Par exemple, la macro “macro1” sear calculée avant la macro “macro2” : donc l'expression de macro2 peut utiliser la valeur $macro1. De même pour les groupes : une règle de groupe peut en utiliser une autre calculée précédemment.
</div> </div>
</div><!-- EDIT4 SECTION "Macros and groups" [987-3081] --> </div><!-- EDIT4 SECTION "Macros and groups" [1129-3223] -->
<h3 class="sectionedit5" id="local_macros">Macros locales</h3> <h3 class="sectionedit5" id="local_macros">Macros locales</h3>
<div class="level3"> <div class="level3">
@ -198,12 +204,12 @@ admin <span class="sy0">-&gt;</span> <span class="re0">$admin</span> <span class
Display<span class="sy0">-</span>Name <span class="sy0">-&gt;</span> <span class="re0">$displayName</span> <span class="sy0">||=</span> <span class="re0">$givenName</span><span class="sy0">.</span><span class="st0">" "</span><span class="sy0">.</span><span class="re0">$surName</span></pre> Display<span class="sy0">-</span>Name <span class="sy0">-&gt;</span> <span class="re0">$displayName</span> <span class="sy0">||=</span> <span class="re0">$givenName</span><span class="sy0">.</span><span class="st0">" "</span><span class="sy0">.</span><span class="re0">$surName</span></pre>
<div class="notetip">Notez que cette fonctionnalité n'est intéressante que pour les systèmes Lemonldap::NG protégeant un grand nombre d'applications <div class="notetip">Notez que cette fonctionnalité n'est intéressante que pour les systèmes Lemonldap::NG protégeant un grand nombre d'applications
</div> </div>
</div><!-- EDIT5 SECTION "Local macros" [3082-3743] --> </div><!-- EDIT5 SECTION "Local macros" [3224-3885] -->
<h2 class="sectionedit6" id="portal_performances">Performances du portail</h2> <h2 class="sectionedit6" id="portal_performances">Performances du portail</h2>
<div class="level2"> <div class="level2">
</div><!-- EDIT6 SECTION "Portal performances" [3744-3776] --> </div><!-- EDIT6 SECTION "Portal performances" [3886-3918] -->
<h3 class="sectionedit7" id="general_performances">Performances générales</h3> <h3 class="sectionedit7" id="general_performances">Performances générales</h3>
<div class="level3"> <div class="level3">
@ -228,7 +234,7 @@ By default it uses local storage to store its tokens. If you have more than 1 po
<div class="notetip">En environnement de production et pour de meilleures performances réseau, utiliser les versions compactées des librairies javascript et css : utiliser <code>make install <strong>PROD=yes</strong></code>. Ceci est fait par défaut avec les paquets RPM/DEB. <div class="notetip">En environnement de production et pour de meilleures performances réseau, utiliser les versions compactées des librairies javascript et css : utiliser <code>make install <strong>PROD=yes</strong></code>. Ceci est fait par défaut avec les paquets RPM/DEB.
</div> </div>
</div><!-- EDIT7 SECTION "General performances" [3777-4643] --> </div><!-- EDIT7 SECTION "General performances" [3919-4785] -->
<h3 class="sectionedit8" id="apachesession_performances">Performances d'Apache::Session</h3> <h3 class="sectionedit8" id="apachesession_performances">Performances d'Apache::Session</h3>
<div class="level3"> <div class="level3">
@ -347,7 +353,7 @@ This test isn't a “only-backend” test but embed some LLNG methods, so real d
<tr class="row14 roweven"> <tr class="row14 roweven">
<td class="col0 centeralign" colspan="8"> <em>The source of this test is available in sources: e2e-tests/sbperf.pl</em> </td> <td class="col0 centeralign" colspan="8"> <em>The source of this test is available in sources: e2e-tests/sbperf.pl</em> </td>
</tr> </tr>
</table></div><!-- EDIT9 TABLE [7534-9437] --> </table></div><!-- EDIT9 TABLE [7676-9579] -->
<ul> <ul>
<li class="level1"><div class="li"> <em><strong>(1) :</strong> “purge” test is done with Apache::Session::Browseable-1.2.5 and LLG-2.0. Earlier results are not so good.</em></div> <li class="level1"><div class="li"> <em><strong>(1) :</strong> “purge” test is done with Apache::Session::Browseable-1.2.5 and LLG-2.0. Earlier results are not so good.</em></div>
</li> </li>
@ -373,7 +379,7 @@ Analysis:
</li> </li>
</ul> </ul>
</div><!-- EDIT8 SECTION "Apache::Session performances" [4644-10215] --> </div><!-- EDIT8 SECTION "Apache::Session performances" [4786-10357] -->
<h3 class="sectionedit10" id="ldap_performances">Performances LDAP</h3> <h3 class="sectionedit10" id="ldap_performances">Performances LDAP</h3>
<div class="level3"> <div class="level3">
@ -410,12 +416,12 @@ Maintenant, ldapgroups contient “admin su”
</p> </p>
</div> </div>
</div><!-- EDIT10 SECTION "LDAP performances" [10216-11345] --> </div><!-- EDIT10 SECTION "LDAP performances" [10358-11487] -->
<h2 class="sectionedit11" id="manager_performances">Performances du Manager</h2> <h2 class="sectionedit11" id="manager_performances">Performances du Manager</h2>
<div class="level2"> <div class="level2">
</div><!-- EDIT11 SECTION "Manager performances" [11346-11379] --> </div><!-- EDIT11 SECTION "Manager performances" [11488-11521] -->
<h3 class="sectionedit12" id="disable_unused_modules">Désactiver les modules inutilisés</h3> <h3 class="sectionedit12" id="disable_unused_modules">Désactiver les modules inutilisés</h3>
<div class="level3"> <div class="level3">
@ -426,7 +432,7 @@ In lemonldap-ng.ini, set only modules that you will use. By default, configurati
<pre class="code ini"><span class="re0"><span class="br0">[</span>manager<span class="br0">]</span></span> <pre class="code ini"><span class="re0"><span class="br0">[</span>manager<span class="br0">]</span></span>
<span class="re1">enabledModules</span> <span class="sy0">=</span><span class="re2"> conf, sessions</span></pre> <span class="re1">enabledModules</span> <span class="sy0">=</span><span class="re2"> conf, sessions</span></pre>
</div><!-- EDIT12 SECTION "Disable unused modules" [11380-11626] --> </div><!-- EDIT12 SECTION "Disable unused modules" [11522-11768] -->
<h3 class="sectionedit13" id="use_static_html_files">Use static HTML files</h3> <h3 class="sectionedit13" id="use_static_html_files">Use static HTML files</h3>
<div class="level3"> <div class="level3">
@ -459,7 +465,7 @@ So manager <abbr title="HyperText Markup Language">HTML</abbr> templates will be
</p> </p>
</div><!-- EDIT13 SECTION "Use static HTML files" [11627-] --> </div><!-- EDIT13 SECTION "Use static HTML files" [11769-] -->
</div> </div>
</body> </body>
</html> </html>

@ -0,0 +1,134 @@
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<title>documentation:2.0:psgi</title><!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,psgi"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="psgi.html"/>
<link rel="contents" href="psgi.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:psgi","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script><!-- //endif --><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script><!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="advanced_psgi_usage">Advanced PSGI usage</h1>
<div class="level1">
<p>
LLNG is build on <a href="http://plackperl.org/" class="urlextern" title="http://plackperl.org/" rel="nofollow">Plack</a>, so it can be used with any compatible server:
</p>
<ul>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/starman" class="urlextern" title="https://metacpan.org/pod/starman" rel="nofollow">Starman</a></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/twiggy" class="urlextern" title="https://metacpan.org/pod/twiggy" rel="nofollow">Twiggy</a></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/Twiggy::Prefork" class="urlextern" title="https://metacpan.org/pod/Twiggy::Prefork" rel="nofollow">Twiggy::Prefork</a></div>
</li>
<li class="level1"><div class="li"> <a href="https://metacpan.org/pod/feersum" class="urlextern" title="https://metacpan.org/pod/feersum" rel="nofollow">Starman</a></div>
</li>
<li class="level1"><div class="li"> uWSGI using <a href="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" class="urlextern" title="http://uwsgi-docs.readthedocs.io/en/latest/Perl.html" rel="nofollow">uWSGI PSGI plugin</a></div>
</li>
</ul>
<p>
uWSGI may provide the highest performance.
</p>
</div><!-- EDIT1 SECTION "Advanced PSGI usage" [1-477] -->
<h2 class="sectionedit2" id="fastcgi_server_replacement">FastCGI server replacement</h2>
<div class="level2">
<p>
A <code>llng-server.psgi</code> is provided in example directory. It is designed to replace exactly FastCGI server. You can use it :
</p>
<ul>
<li class="level1"><div class="li"> with a FCGI Plack server, but you just have to change llng-fastcgi-server engine <em>(in /etc/default/llng-fastcgi-server)</em> to have the same result</div>
</li>
<li class="level1"><div class="li"> with a HTTP Plack server, not yet tested</div>
</li>
<li class="level1"><div class="li"> with uWSGI <em><strong>(see below)</strong></em></div>
</li>
</ul>
<div class="noteimportant">Starman, Twiggy,… are HTTP servers, not FCGI ones !
</div>
<p>
You can also replace only a part of it to create a specialized FastCGI server (portal,…). Look at <code>llng-server.psgi</code> example and take the part you want to use.
</p>
<p>
There are also some other psgi files in examples directory.
</p>
<p>
See also <a href="highperfnginxhandler.html" class="wikilink1" title="documentation:2.0:highperfnginxhandler">High performance handler for Nginx</a>
</p>
</div><!-- EDIT2 SECTION "FastCGI server replacement" [478-1265] -->
<h3 class="sectionedit3" id="using_uwsgi">Using uWSGI</h3>
<div class="level3">
<p>
You must install uWSGI PSGI plugin. Then for example, launch llng-server.psgi <em>(simple example)</em>:
</p>
<pre class="code">uwsgi --plugins psgi --socket :5000 --psgi e2e-tests/llng-server.psgi</pre>
<p>
You will find in LLNG Nginx configuration files some comments that explain how to configure Nginx to use uWSGI instead of LLNG FastCGI server.
</p>
</div><!-- EDIT3 SECTION "Using uWSGI" [1266-] -->
</div>
</body>
</html>

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=0b96dfdde10e54bc7b60aeaed5a35886" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul> <li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=e9b6452ada37d1a15efef5e85fe4e450" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div> </div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site --> </div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1521571168" width="2" height="1" alt="" /></div> <div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1521784179" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no"> <div id="screen__mode" class="no">
<span class="visible-xs"></span> <span class="visible-xs"></span>
<span class="visible-sm"></span> <span class="visible-sm"></span>

@ -747,6 +747,10 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</li> </li>
<li class="level1"><div class="li"> <a href="fastcgi.html" class="wikilink1" title="documentation:2.0:fastcgi">Support FastCGI</a></div> <li class="level1"><div class="li"> <a href="fastcgi.html" class="wikilink1" title="documentation:2.0:fastcgi">Support FastCGI</a></div>
</li> </li>
<li class="level1"><div class="li"> <a href="psgi.html" class="wikilink1" title="documentation:2.0:psgi">Advanced PSGI usage</a></div>
</li>
<li class="level1"><div class="li"> <a href="managertests.html" class="wikilink1" title="documentation:2.0:managertests">Ignore some manager tests</a></div>
</li>
<li class="level1"><div class="li"> <a href="parameterlist.html" class="wikilink1" title="documentation:2.0:parameterlist">Voir la liste complète des paramètres</a></div> <li class="level1"><div class="li"> <a href="parameterlist.html" class="wikilink1" title="documentation:2.0:parameterlist">Voir la liste complète des paramètres</a></div>
</li> </li>
</ul> </ul>
@ -755,7 +759,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div> </p></div></div>
</p> </p>
</div><!-- EDIT18 SECTION "Advanced features" [13144-14205] --> </div><!-- EDIT18 SECTION "Advanced features" [13144-14285] -->
<h2 class="sectionedit19" id="mini_howtos">Mini howtos</h2> <h2 class="sectionedit19" id="mini_howtos">Mini howtos</h2>
<div class="level2"> <div class="level2">
@ -786,7 +790,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div> </p></div></div>
</p> </p>
</div><!-- EDIT19 SECTION "Mini howtos" [14206-14875] --> </div><!-- EDIT19 SECTION "Mini howtos" [14286-14955] -->
<h2 class="sectionedit20" id="exploitation">Exploitation</h2> <h2 class="sectionedit20" id="exploitation">Exploitation</h2>
<div class="level2"> <div class="level2">
@ -819,7 +823,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div> </p></div></div>
</p> </p>
</div><!-- EDIT20 SECTION "Exploitation" [14876-15296] --> </div><!-- EDIT20 SECTION "Exploitation" [14956-15376] -->
<h2 class="sectionedit21" id="bug_report">Bug report</h2> <h2 class="sectionedit21" id="bug_report">Bug report</h2>
<div class="level2"> <div class="level2">
@ -830,7 +834,7 @@ See <a href="bugreport.html" class="wikilink1" title="bugreport">How to report a
</p> </p>
</div><!-- EDIT21 SECTION "Bug report" [15297-15361] --> </div><!-- EDIT21 SECTION "Bug report" [15377-15441] -->
<h2 class="sectionedit22" id="developer_corner">Developer corner</h2> <h2 class="sectionedit22" id="developer_corner">Developer corner</h2>
<div class="level2"> <div class="level2">
@ -911,7 +915,7 @@ To translate this doc (Manager help):
</li> </li>
</ul> </ul>
</div><!-- EDIT22 SECTION "Developer corner" [15362-] --> </div><!-- EDIT22 SECTION "Developer corner" [15442-] -->
</div> </div>
</body> </body>
</html> </html>

@ -11,7 +11,7 @@
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif --> //else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/> <meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/> <meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,status"/> <meta name="keywords" content="documentation,2.0,status"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/> <link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="status.html"/> <link rel="start" href="status.html"/>
@ -50,24 +50,69 @@
<div> <div>
<ul class="toc"> <ul class="toc">
<li class="level1"><div class="li"><a href="#presentation">Présentation</a></div></li> <li class="level1"><div class="li"><a href="#portal_status_experimental">Portal Status (experimental)</a></div>
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div>
<ul class="toc"> <ul class="toc">
<li class="level2"><div class="li"><a href="#apache">Apache</a></div></li> <li class="level2"><div class="li"><a href="#configuration">Configuration</a></div></li>
<li class="level2"><div class="li"><a href="#lemonldapng">LemonLDAP::NG</a></div></li> </ul>
</li>
<li class="level1"><div class="li"><a href="#handler_status">Page de statut de l'agent</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#presentation">Présentation</a></div></li>
<li class="level2"><div class="li"><a href="#configuration1">Configuration</a></div>
<ul class="toc">
<li class="level3"><div class="li"><a href="#apache">Apache</a></div></li>
<li class="level3"><div class="li"><a href="#nginx">Nginx</a></div></li>
<li class="level3"><div class="li"><a href="#lemonldapng">LemonLDAP::NG</a></div></li>
</ul></li>
</ul></li> </ul></li>
</ul> </ul>
</div> </div>
</div><!-- TOC END --> </div><!-- TOC END -->
<h1 class="sectionedit1" id="handler_status">Page de statut de l'agent</h1> <h1 class="sectionedit1" id="status_pages">Status pages</h1>
<div class="level1"> <div class="level1">
</div><!-- EDIT1 SECTION "Handler Status" [1-30] --> </div><!-- EDIT1 SECTION "Status pages" [1-28] -->
<h2 class="sectionedit2" id="portal_status_experimental">Portal Status (experimental)</h2>
<div class="level2">
<p>
The portal displays in JSON format its activity. Unlike handler, this is not the full activity of the server, but for now just the activity of 1 thread. This can give a view to all returned codes.
</p>
</div><!-- EDIT2 SECTION "Portal Status (experimental)" [29-268] -->
<h3 class="sectionedit3" id="configuration">Configuration</h3>
<div class="level3">
<p>
* Set <code>portalStatus = 1</code> in lemonldap-ng.ini file (section <code>[Portal]</code>)
* Protect <a href="http://portal/portalStatus" class="urlextern" title="http://portal/portalStatus" rel="nofollow">http://portal/portalStatus</a> using your webserver configuration
</p>
<p>
Status is displayed by calling this <abbr title="Uniform Resource Locator">URL</abbr>.
</p>
</div><!-- EDIT3 SECTION "Configuration" [269-485] -->
<h2 class="sectionedit2" id="presentation">Présentation</h2> <h2 class="sectionedit4" id="handler_status">Page de statut de l'agent</h2>
<div class="level2"> <div class="level2">
<div class="noteimportant">Since 2.0, Handler status no more collects Portal returned codes.
</div>
</div><!-- EDIT4 SECTION "Handler Status" [486-603] -->
<h3 class="sectionedit5" id="presentation">Présentation</h3>
<div class="level3">
<p> <p>
Lorsque la fonctionnalité "status" est activée, les agents et le portail collectent des statistiques et les sauvegardent dans le cache local Donc si plusieurs agents sont déployés, chacun gère ses propres statistiques. Lorsque la fonctionnalité "status" est activée, les agents et le portail collectent des statistiques et les sauvegardent dans le cache local Donc si plusieurs agents sont déployés, chacun gère ses propres statistiques.
@ -92,15 +137,15 @@ Exemple de page de statut :
<a href="documentation/status_standard.png_documentation_2.0_status.html" class="media" title="documentation:status_standard.png"><img src="documentation/status_standard.png" class="mediacenter" alt="" /></a> <a href="documentation/status_standard.png_documentation_2.0_status.html" class="media" title="documentation:status_standard.png"><img src="documentation/status_standard.png" class="mediacenter" alt="" /></a>
</p> </p>
</div><!-- EDIT2 SECTION "Presentation" [31-1206] --> </div><!-- EDIT5 SECTION "Presentation" [604-1777] -->
<h2 class="sectionedit3" id="configuration">Configuration</h2> <h3 class="sectionedit6" id="configuration1">Configuration</h3>
<div class="level2"> <div class="level3">
</div><!-- EDIT3 SECTION "Configuration" [1207-1233] --> </div>
<h3 class="sectionedit4" id="apache">Apache</h3> <h4 id="apache">Apache</h4>
<div class="level3"> <div class="level4">
<p> <p>
Il faut autoriser l'accès au chemin du statut dans le configuration Apache de l'agent : Il faut autoriser l'accès au chemin du statut dans le configuration Apache de l'agent :
@ -117,10 +162,34 @@ Redémarrer Apache ensuite.
</p> </p>
<div class="notetip">On peut changer la directive <code>Allow</code> pour réserver l'adresse <abbr title="Internet Protocol">IP</abbr> d'administration, ou utiliser une autre protection. <div class="notetip">On peut changer la directive <code>Allow</code> pour réserver l'adresse <abbr title="Internet Protocol">IP</abbr> d'administration, ou utiliser une autre protection.
</div> </div>
</div><!-- EDIT4 SECTION "Apache" [1234-1705] --> </div>
<h3 class="sectionedit5" id="lemonldapng">LemonLDAP::NG</h3> <h4 id="nginx">Nginx</h4>
<div class="level3"> <div class="level4">
<p>
You need to give access to status path in the Handler Nginx configuration:
</p>
<pre class="code file nginx">server {
listen __PORT__;
server_name reload.__DNSDOMAIN__;
root /var/www/html;
...
location = /status {
allow 127.0.0.1;
deny all;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:__FASTCGISOCKDIR__/llng-fastcgi.sock;
fastcgi_param LLTYPE status;
}
}</pre>
</div>
<h4 id="lemonldapng">LemonLDAP::NG</h4>
<div class="level4">
<p> <p>
Éditer <code>lemonldap-ng.ini</code>, et activer le statut dans la section <code>handler</code> : Éditer <code>lemonldap-ng.ini</code>, et activer le statut dans la section <code>handler</code> :
@ -131,10 +200,12 @@ Redémarrer Apache ensuite.
<span class="re1">status</span> <span class="sy0">=</span><span class="re2"> 1</span></pre> <span class="re1">status</span> <span class="sy0">=</span><span class="re2"> 1</span></pre>
<p> <p>
Redémarrer Apache ensuite.
Then restart webserver.
</p> </p>
</div><!-- EDIT5 SECTION "LemonLDAP::NG" [1706-] --> </div><!-- EDIT6 SECTION "Configuration" [1778-] -->
</div> </div>
</body> </body>
</html> </html>

Loading…
Cancel
Save