Authentication
Blocking Access
Counters
Faster CGI Programs
FrontPage from Microsoft
Languages and Internationalization
Server-Side Scripting
Throttling Connections
URL Rewriting
Miscellaneous
MIME Magic
DSO
In addition to the standard modules mentioned in Chapter 1, "Getting Started", which we suggest you compile into your copy of Apache, there are a number of more volatile modules available. We do not propose to document them in this edition of the book, but the list might be interesting. Be warned: modules designed for earlier versions of Apache may need updating before they work correctly with Version 1.3. Modules can be found in several places:
The Apache ../src/modules directory. This contains the standard modules plus (in the 1.3 release) subdirectories experimental and extra. The curious may find a search rewarding. At the time of writing there was only mod_mmap_static, which allows faster serving of slowly changing files.
The Apache FTP directory at ftp://ftp.apache.org/apache/dist/contrib/modules/. At the time of writing the list was as follows:
Disallow requests for files on particular devices.
Authenticate via cookies on-the-fly.
Authenticate via cookies with .htpasswd-like file.
Authenticate via external program.
Authenticate via instant passwords for dummy users.
Authenticate via system passwd file.
Bandwidth management on a per-connection basis.
Automatic caching of documents via mmap().
Automatic URL access counter via DBM file.
Disallow requests for files owned by particular user IDs.
Conditional locking mechanism for document trees.
Peepholing filesystem information about documents.
Handler for HTTP/1.1 PUT and DELETE method.
Parse query string to CGI/SSI variables.
Session management and tracking via identifiers.
The module registry at http://modules.apache.org/:
NIS/password-based authentication, using normal user IDs.
Limit bandwidth based on number of connections.
Set User/Group ID for CGI execution (like CERN).
A Chatbox module for Apache.
Patch for running httpd chrooted.
Alpha version of a module to parse Cold Fusion code, using mysql.
Fake basic authentication using cookies.
Compare cookie against contents of MySQL DB.
Cookie-based authentication, with .htpasswd-like file.
Cookie-based authentication, with mSQL database.
Research education.
DCE authentication/secure DFS access.
Implements per-directory logging.
Allows one to suppress HTML preamble for directories.
Disallow serving web pages based on uid/gid.
Authenticates using user-provided function/script.
Keeps CGI processes alive to avoid per-hit forks.
Viewing FTP archive using WWW, conversions.
Programmable database extension of HTML.
Configurable directory listing module.
Module for instant password authentication.
Enables execution of Java apps as CGI directly.
Kerberos auth for mutual tkt or principal/passwd.
Authenticates users from an LDAP directory.
Throttle the usage of individual users.
Restrict access to filespace more efficiently.
Authenticate via Perl DBI, Oracle, Informix, more.
Apache LDAP authentication module.
mySQL authentication module for Apache.
Authentication module for Apache 1.3 PostgreSQL.
Authenticate via external RADIUS server.
Networked dbm or db authentication permits auth db sharing between servers.
Samba-based authentication for passwords.
Authorization module that uses SMB (LanMan).
Basic authentication using System-Accounts.
Authentication module via YARD database.
Module and patch converting national characters.
URI to Postgres95 Large Object mapping.
Load modules dynamically from ELF object files.
Embedded (nonforking) CGI.
Java backend processor.
Configurable national character set translator.
Javascript module (ECMA-262).
Java servlet interface.
LDAP authentication and access rules.
Selective lock of trees and virtual hosts.
mmap a static list of files for speed.
NeoWebScript-Tcl scripting extension.
SSI extensions.
Embed Perl interpreters to avoid CGI overhead and provide a Perl interface to the server API.
Handler for HTTP /1.1 PUT and DELETE methods.
Advanced session management and tracking.
Free Apache interface to SSLeay.
Directly invoke CORBA objects to handle CGI requests.
Authentication against Pluggable Auth Modules.
Fixes to allow compilation on SunOS-4 without GCC.
Server-parsed scripting language with RDBMS support.
User authentication with the Postgres95 database.
User authentication with PostgreSQL (and cookie).
Embedded Python language interpreter.
Parse the query string to XSSI variables.
RADIUS authentication module.
SSL security module for the Apache web server.
Mapping on URI level; includes the "/" and "/."
Smart Russian codepage translations.
Russian document support in various charsets.
SSI handling ISO-2022-JP encoding document.
Use both system files and .htaccess for authentication.
Allow or deny access to user/domain pair.
Provide a different method of mapping ~user URLs.
Add charset negotiation/guessing to .var files.
Dynamically count web page access.
The Logfile-Modul for VDZ online accounting.
Other sites; use a search engine to look for "Apache module".
There is a whole range of options for different authentication schemes. The usernames and passwords can be stored in flat files (with the standard mod_auth) or in DBM or Berkeley-DB files (with mod_auth_dbm or mod_auth_db, respectively).
For more complex applications, usernames and passwords can be stored in mSQL, Postgres95, or DBI-compatible databases, using mod_auth_msql, mod_auth_pg95, or http://www.osf.org/~dougm/apache/.
If passwords can't be stored in a file or database (perhaps because they are obtained at runtime from another network service), the ftp://ftp.apache.org/apache/dist/contrib/modules/mod_auth_external.c module lets you call an external program to check if the given username and password are valid. If your site uses Kerberos, http://www2.ncsu.edu/ncsu/cc/rddc/projects/mod_auth_kerb/ allows Kerberos-based authentication.
The mod_auth_anon module allows an anonymous FTP-style access to authenticated areas, in which a user gives an anonymous username and a real email address as the password. There are also modules to hold authentication information in cookies and to authenticate against standard /etc/passwd and NIS password services. See the module registry at http://modules.apache.org/.
Copyright © 2001 O'Reilly & Associates. All rights reserved.