home *** CD-ROM | disk | FTP | other *** search
- ill be rejected with a return value of <code>FALSE</code>, and a
- <code>GetLastError</code> value of
- <code>ERROR_INVALID_PARAMETER</code>.</p>
-
- <p><code>GetServerVariable</code> is supported, although extended server
- variables do not exist (as defined by other servers.) All the
- usual Apache CGI environment variables are available from
- <code>GetServerVariable</code>, as well as the <code>ALL_HTTP</code>
- and <code>ALL_RAW</code> values.</p>
-
- <p>Apache 2.0 <module>mod_isapi</module> supports additional
- features introduced in later versions of the ISAPI specification,
- as well as limited emulation of async I/O and the
- <code>TransmitFile</code> semantics. Apache also supports preloading
- ISAPI .dlls for performance, neither of which were not available under
- Apache 1.3 <code>mod_isapi</code>.</p>
- </section>
-
- <directivesynopsis>
- <name>ISAPICacheFile</name>
- <description>ISAPI .dll files to be loaded at startup</description>
- <syntax>ISAPICacheFile <var>file-path</var> [<var>file-path</var>]
- ...</syntax>
- <contextlist><context>server config</context><context>virtual host</context>
- </contextlist>
-
- <usage>
- <p>Specifies a space-separated list of file names to be loaded
- when the Apache server is launched, and remain loaded until the
- server is shut down. This directive may be repeated for every
- ISAPI .dll file desired. The full path name of each file should
- be specified. If the path name is not absolute, it will be treated
- relative to <directive module="core">ServerRoot</directive>.</p>
- </usage>
- </directivesynopsis>
-
- <directivesynopsis>
- <name>ISAPIReadAheadBuffer</name>
- <description>Size of the Read Ahead Buffer sent to ISAPI
- extensions</description>
- <syntax>ISAPIReadAheadBuffer <var>size</var></syntax>
- <default>ISAPIReadAheadBuffer 49152</default>
- <contextlist><context>server config</context><context>virtual host</context>
- <context>directory</context><context>.htaccess</context></contextlist>
- <override>FileInfo</override>
-
- <usage>
- <p>Defines the maximum size of the Read Ahead Buffer sent to
- ISAPI extensions when they are initially invoked. All remaining
- data must be retrieved using the <code>ReadClient</code> callback; some
- ISAPI extensions may not support the <code>ReadClient</code> function.
- Refer questions to the ISAPI extension's author.</p>
- </usage>
- </directivesynopsis>
-
- <directivesynopsis>
- <name>ISAPILogNotSupported</name>
- <description>Log unsupported feature requests from ISAPI
- extensions</description>
- <syntax>ISAPILogNotSupported on|off</syntax>
- <default>ISAPILogNotSupported off</default>
- <contextlist><context>server config</context><context>virtual host</context>
- <context>directory</context><context>.htaccess</context></contextlist>
- <override>FileInfo</override>
-
- <usage>
- <p>Logs all requests for unsupported features from ISAPI
- extensions in the server error log. This may help administrators
- to track down problems. Once set to on and all desired ISAPI modules
- are functioning, it should be set back to off.</p>
- </usage>
- </directivesynopsis>
-
- <directivesynopsis>
- <name>ISAPIAppendLogToErrors</name>
- <description>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from
- ISAPI extensions to the error log</description>
- <syntax>ISAPIAppendLogToErrors on|off</syntax>
- <default>ISAPIAppendLogToErrors off</default>
- <contextlist><context>server config</context><context>virtual host</context>
- <context>directory</context><context>.htaccess</context></contextlist>
- <override>FileInfo</override>
-
- <usage>
- <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI
- extensions to the server error log.</p>
- </usage>
- </directivesynopsis>
-
- <directivesynopsis>
- <name>ISAPIAppendLogToQuery</name>
- <description>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from
- ISAPI extensions to the query field</description>
- <syntax>ISAPIAppendLogToQuery on|off</syntax>
- <default>ISAPIAppendLogToQuery on</default>
- <contextlist><context>server config</context><context>virtual host</context>
- <context>directory</context><context>.htaccess</context></contextlist>
- <override>FileInfo</override>
-
- <usage>
- <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI
- extensions to the query field (appended to the <directive
- module="mod_log_config">CustomLog</directive> <code>%q</code>
- component).</p>
- </usage>
- </directivesynopsis>
-
- <directivesynopsis>
- <name>ISAPIFakeAsync</name>
- <description>Fake asynchronous support for ISAPI callbacks</description>
- <syntax>ISAPIFakeAsync on|off</syntax>
- <default>ISAPIFakeAsync off</default>
- <contextlist><context>server config</context><context>virtual host</context>
- <context>directory</context><context>.htaccess</context></contextlist>
- <override>FileInfo</override>
-
- <usage>
- <p>While set to on, asynchronous support for ISAPI callbacks is
- simulated.</p>
- </usage>
- </directivesynopsis>
-
- </modulesynopsis>
-
- <?xml version="1.0" encoding="UTF-8" ?>
-
- <metafile>
- <basename>mod_isapi</basename>
- <path>/mod/</path>
- <relpath>..</relpath>
-
- <variants>
- <variant>en</variant>
- </variants>
- </metafile>
- <?xml version="1.0"?>
- <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
- <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
- <modulesynopsis metafile="mod_ldap.xml.meta">
-
- <name>mod_ldap</name>
- <description>LDAP connection pooling and result caching services for use
- by other LDAP modules</description>
- <status>Experimental</status>
- <sourcefile>util_ldap.c</sourcefile>
- <identifier>ldap_module</identifier>
- <compatibility>Available in version 2.0.41 and later</compatibility>
-
- <summary>
- <p>This module was created to improve the performance of
- websites relying on backend connections to LDAP servers. In
- addition to the functions provided by the standard LDAP
- libraries, this module adds an LDAP connection pool and an LDAP
- shared memory cache.</p>
-
- <p>To enable this module, LDAP support must be compiled into
- apr-util. This is achieved by adding the <code>--with-ldap</code>
- flag to the <code>./configure</code> script when building
- Apache.</p>
-
- <p>SSL support requires that <module>mod_ldap</module> be linked
- with one of the following LDAP SDKs: <a href="http://www.openldap.org/">
- OpenLDAP SDK</a> (both 1.x and 2.x), <a href="http://developer.novell.com/ndk/cldap.htm">
- Novell LDAP SDK</a> or the <a href="http://www.iplanet.com/downloads/developer/">
- iPlanet(Netscape)</a> SDK.</p>
-
- </summary>
-
- <section id="exampleconfig"><title>Example Configuration</title>
- <p>The following is an example configuration that uses
- <module>mod_ldap</module> to increase the performance of HTTP Basic
- authentication provided by <module>mod_auth_ldap</module>.</p>
-
- <example>
- # Enable the LDAP connection pool and shared<br />
- # memory cache. Enable the LDAP cache status<br />
- # handler. Requires that mod_ldap and mod_auth_ldap<br />
- # be loaded. Change the "yourdomain.example.com" to<br />
- # match your domain.<br />
- <br />
- LDAPSharedCacheSize 200000<br />
- LDAPCacheEntries 1024<br />
- LDAPCacheTTL 600<br />
- LDAPOpCacheEntries 1024<br />
- LDAPOpCacheTTL 600<br />
- <br />
- <Location /ldap-status><br />
- <indent>
- SetHandler ldap-status<br />
- Order deny,allow<br />
- Deny from all<br />
- Allow from yourdomain.example.com<br />
- AuthLDAPEnabled on<br />
- AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one<br />
- AuthLDAPAuthoritative on<br />
- require valid-user<br />
- </indent>
- </Location>
- </example>
- </section>
-
- <section id="pool"><title>LDAP Connection Pool</title>
-
- <p>LDAP connections are pooled from request to request. This
- allows the LDAP server to remain connected and bound ready for
- the next request, without the need to unbind/connect/rebind.
- The performance advantages are similar to the effect of HTTP
- keepalives.</p>
-
- <p>On a busy server it is possible that many requests will try
- and access the same LDAP server connection simultaneously.
- Where an LDAP connection is in use, Apache will create a new
- connection alongside the original one. This ensures that the
- connection pool does not become a bottleneck.</p>
-
- <p>There is no need to manually enable connection pooling in
- the Apache configuration. Any module using this module for
- access to LDAP services will share the connection pool.</p>
- </section>
-
- <section id="cache"><title>LDAP Cache</title>
-
- <p>For improved performance, <module>mod_ldap</module> uses an aggressive
- caching strategy to minimize the number of times that the LDAP
- server must be contacted. Caching can easily double or triple
- the throughput of Apache when it is serving pages protected
- with mod_auth_ldap. In addition, the load on the LDAP server
- will be significantly decreased.</p>
-
- <p><module>mod_ldap</module> supports two types of LDAP caching during
- the search/bind phase with a <em>search/bind cache</em> and
- during the compare phase with two <em>operation
- caches</em>. Each LDAP URL that is used by the server has
- its own set of these three caches.</p>
-
- <section id="search-bind"><title>The Search/Bind Cache</title>
- <p>The process of doing a search and then a bind is the
- most time-consuming aspect of LDAP operation, especially if
- the directory is large. The search/bind cache is used to
- cache all searches that resulted in successful binds.
- Negative results (<em>i.e.</em>, unsuccessful searches, or searches
- that did not result in a successful bind) are not cached.
- The rationale behind this decision is that connections with
- invalid credentials are only a tiny percentage of the total
- number of connections, so by not caching invalid
- credentials, the size of the cache is reduced.</p>
-
- <p><module>mod_ldap</module> stores the username, the DN
-