[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Module mod_log_config

This module provides for logging of the requests made to the server, using the Common Log Format or a user-specified format.

Status: Base
Source File: mod_log_config.c
Module Identifier: config_log_module
Compatibility: Was an extension module prior to Apache 1.2.

Summary

This module provides for flexible logging of client requests. Logs are written in a customizable format, and may be written directly to a file, or to an external program. Conditional logging is provided so that individual requests may be included or excluded from the logs based on characteristics of the request.

Three directives are provided by this module: TransferLog to create a log file, LogFormat to set a custom format, and CustomLog to define a log file and format in one step. The TransferLog and CustomLog directives can be used multiple times in each server to cause each request to be logged to multiple files.

See also: Apache Log Files.

Directives

Custom Log Formats

The format argument to the LogFormat and CustomLog directives is a string. This string is used to log each request to the log file. It can contain literal characters copied into the log files and the C-style control characters "\n" and "\t" to represent new-lines and tabs. Literal quotes and back-slashes should be escaped with back-slashes.

The characteristics of the request itself are logged by placing "%" directives in the format string, which are replaced in the log entry by the values as follows:

%...a:          Remote IP-address
%...A:          Local IP-address
%...B:          Bytes sent, excluding HTTP headers.
%...b:          Bytes sent, excluding HTTP headers. In CLF format
        i.e. a '-' rather than a 0 when no bytes are sent.
%...c:          Connection status when response was completed.
                'X' = connection aborted before the response completed.
                '+' = connection may be kept alive after the response is sent.
                '-' = connection will be closed after the response is sent.
%...{FOOBAR}e:  The contents of the environment variable FOOBAR
%...f:          Filename
%...h:          Remote host
%...H       The request protocol
%...{Foobar}i:  The contents of Foobar: header line(s) in the request
                sent to the server.
%...l:          Remote logname (from identd, if supplied)
%...m       The request method
%...{Foobar}n:  The contents of note "Foobar" from another module.
%...{Foobar}o:  The contents of Foobar: header line(s) in the reply.
%...p:          The canonical Port of the server serving the request
%...P:          The process ID of the child that serviced the request.
%...q       The query string (prepended with a ? if a query string exists,
        otherwise an empty string)
%...r:          First line of request
%...s:          Status.  For requests that got internally redirected, this is
                the status of the *original* request --- %...>="directive-dict.html#Override"
    rel="Help">Override: FileInfo
Status: Base
Module: mod_actions
Compatibility: Action is only available in Apache 1.1 and later

This directive adds an action, which will activate cgi-script when action-type is triggered by the request. The cgi-script is the URL-path to a resource that has been configured as a CGI script using ScriptAlias or AddHandler. The action-type can be either a handler or a MIME content type. It sends the URL and file path of the requested document using the standard CGI PATH_INFO and PATH_TRANSLATED environment variables.

Examples:

    # Requests for files of a particular type:
    Action image/gif /cgi-bin/images.cgi

    # Files of a particular file extension
    AddHandler my-file-type .xyz
    Action my-file-type /cgi-bin/program.cgi
    

In the first example, requests for files with a MIME content type of image/gif will instead be handled by the specified cgi script /cgi-bin/images.cgi.

In the second example, requests for files with a file extension of .xyz are handled instead by the specified cgi script /cgi-bin/program.cgi.

See also: AddHandler


Script directive

Syntax: Script method cgi-script
Context: server config, virtual host, directory
Status: Base
Module: mod_actions
Compatibility: Script is only available in Apache 1.1 and later; arbitrary method use is only available with 1.3.10 and later

This directive adds an action, which will activate cgi-script when a file is requested using the method of method. The cgi-script is the URL-path to a resource that has been configured as a CGI script using ScriptAlias or AddHandler. The URL and file path of the requested document is sent using the standard CGI PATH_INFO and PATH_TRANSLATED environment variables.

Prior to Apache 1.3.10, method can only be one of GET, POST, PUT, or DELETE. As of 1.3.10, any arbitrary method name may be used. Method names are case-sensitive, so Script PUT and Script put have two entirely different effects.

Note that the Script command defines default actions only. If a CGI script is called, or some other resource that is capable of handling the requested method internally, it will do so. Also note that Script with a method of GET will only be called if there are query arguments present (e.g., foo.html?hi). Otherwise, the request will proceed normally.

Examples:

    # For <ISINDEX>-style searching
    Script GET /cgi-bin/search
    # A CGI PUT handler
    Script PUT /~bob/put.cgi

Apache HTTP Server Version 1.3

Index Home ./usr/share/doc/apache-doc/manual/mod/mod_mmap_static.html0000644000000000000000000001310010137750512023673 0ustar rootroot00000000000000 Apache module mod_mmap_static
[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Module mod_mmap_static

This module provides mmap()ing of a statically configured list of frequently requested but not changed files.

Status: Experimental
Source File: mod_mmap_static.c
Module Identifier: mmap_static_module
Compatibility: Available in Apache 1.3 and later.

Summary

This is an experimental module and should be used with care. You can easily create a broken site using this module, read this document carefully. mod_mmap_static maps a list of statically configured files (via MMapFile directives in the main server configuration) into memory through the system call mmap(). This system call is available on most modern Unix derivates, but not on all. There are sometimes system-specific limits on the size and number of files that can be mmap()d, experimentation is probably the easiest way to find out.

This mmap()ing is done once at server start or restart, only. So whenever one of the mapped files changes on the filesystem you have to restart the server by at least sending it a HUP or USR1 signal (see the Stopping and Restarting documentation). To reiterate that point: if the files are modified in place without restarting the server you may end up serving requests that are completely bogus. You should update files by unlinking the old copy and putting a new copy in place. Most tools such as rdist and mv do this. The reason why this modules doesn't take care of changes to the files is that this check would need an extra stat() every time which is a waste and against the intent of I/O reduction.

Directives


MMapFile directive

Syntax: MMapFile filename [filename] ...
Default: None
Context: server-config
Override: Not applicable
Status: Experimental
Module: mod_mmap_static
Compatibility: Only available in Apache 1.3 or later

The MMapFile directive maps one or more files (given as whitespace separated arguments) into memory at server startup time. They are automatically unmapped on a server shutdown. When the files have changed on the filesystem at least a HUP or USR1 signal should be send to the server to re-mmap them.

Be careful with the filename arguments: They have to literally match the filesystem path Apache's URL-to-filename translation handlers create. We cannot compare inodes or other stuff to match paths through symbolic links etc. because that again would cost extra stat() system calls which is not acceptable. This module may or may not work with filenames rewritten by mod_alias or mod_rewrite... it is an experiment after all.

Notice: You cannot use this for speeding up CGI programs or other files which are served by special content handlers. It can only be used for regular files which are usually served by the Apache core content handler.

Example:
  MMapFile /usr/local/apache/htdocs/index.html
 

Note: don't bother asking for a for a MMapDir directive which recursively maps all the files in a directory. Use Unix the way it was meant to be used. For example, see the Include directive, and consider this command:

  find /www/htdocs -type f -print \
  | sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf
 

Apache HTTP Server Version 1.3

Index Home ./usr/share/doc/apache-doc/manual/mod/mod_log_config.html.html0000644000000000000000000004245010137750512024455 0ustar rootroot00000000000000 Apache module mod_log_config
[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Module mod_log_config

This module provides for logging of the requests made to the server, using the Common Log Format or a user-specified format.

Status: Base
Source File: mod_log_config.c
Module Identifier: config_log_module