From: Ken Coar
+ Each Apache configuration directive is described using a common format
+ that looks like this:
+
+ Each of the directive's attributes, complete with possible values
+ where possible, are described in this document.
+
+ This indicates the format of the directive as it would appear in a
+ configuration file. This syntax is extremely directive-specific, so
+ refer to the text of the directive's description for details.
+
+ If the directive has a default value (i.e., if you omit it
+ from your configuration entirely, the Apache Web server will behave as
+ though you set it to a particular value), it is described here. If
+ there is no default value, this section should say
+ "None".
+
+ This indicates where in the server's configuration files the directive
+ is legal. It's a comma-separated list of one or more of the following
+ values:
+
+
+
+
+
+ The directive is only allowed within the designated context;
+ if you try to use it elsewhere, you'll get a configuration error that
+ will either prevent the server from handling requests in that context
+ correctly, or will keep the server from operating at all --
+ i.e., the server won't even start.
+
+ The valid locations for the directive are actually the result of a
+ Boolean OR of all of the listed contexts. In other words, a directive
+ that is marked as being valid in "server config,
+ .htaccess" can be used in the httpd.conf file
+ and in .htaccess files, but not within any
+ <Directory> or <VirtualHost> containers.
+
+ This directive attribute indicates which configuration override must
+ be active in order for the directive to be processed when it appears
+ in a .htaccess file. If the directive's
+ context
+ doesn't permit it to appear in .htaccess files, this
+ attribute should say "Not applicable".
+
+ Overrides are activated by the
+ AllowOverrides
+ directive, and apply to a particular scope (such as a directory) and
+ all descendants, unless further modified by other
+ AllowOverrides directives at lower levels. The
+ documentation for that directive also lists the possible override
+ names available.
+
+ This indicates how tightly bound into the Apache Web server the
+ directive is; in other words, you may need to recompile the server
+ with an enhanced set of modules in order to gain access to the
+ directive and its functionality. Possible values for this attribute
+ are:
+
+
+
+
+
+ This quite simply lists the name of the source module which defines
+ the directive.
+
+ If the directive wasn't part of the original Apache version 1
+ distribution, the version in which it was introduced should be listed
+ here. If the directive has the same name as one from the NCSA HTTPd
+ server, any inconsistencies in behaviour between the two should also
+ be mentioned. Otherwise, this attribute should say "No
+ compatibility issues."
+
+ Each Apache configuration directive is described using a common format
+ that looks like this:
+
+ Each of the directive's attributes, complete with possible values
+ where possible, are described in this document.
+
+ This indicates the format of the directive as it would appear in a
+ configuration file. This syntax is extremely directive-specific, so
+ refer to the text of the directive's description for details.
+
+ If the directive has a default value (i.e., if you omit it
+ from your configuration entirely, the Apache Web server will behave as
+ though you set it to a particular value), it is described here. If
+ there is no default value, this section should say
+ "None".
+
+ This indicates where in the server's configuration files the directive
+ is legal. It's a comma-separated list of one or more of the following
+ values:
+
+
+
+
+
+ The directive is only allowed within the designated context;
+ if you try to use it elsewhere, you'll get a configuration error that
+ will either prevent the server from handling requests in that context
+ correctly, or will keep the server from operating at all --
+ i.e., the server won't even start.
+
+ The valid locations for the directive are actually the result of a
+ Boolean OR of all of the listed contexts. In other words, a directive
+ that is marked as being valid in "server config,
+ .htaccess" can be used in the httpd.conf file
+ and in .htaccess files, but not within any
+ <Directory> or <VirtualHost> containers.
+
+ This directive attribute indicates which configuration override must
+ be active in order for the directive to be processed when it appears
+ in a .htaccess file. If the directive's
+ context
+ doesn't permit it to appear in .htaccess files, this
+ attribute should say "Not applicable".
+
+ Overrides are activated by the
+ AllowOverrides
+ directive, and apply to a particular scope (such as a directory) and
+ all descendants, unless further modified by other
+ AllowOverrides directives at lower levels. The
+ documentation for that directive also lists the possible override
+ names available.
+
+ This indicates how tightly bound into the Apache Web server the
+ directive is; in other words, you may need to recompile the server
+ with an enhanced set of modules in order to gain access to the
+ directive and its functionality. Possible values for this attribute
+ are:
+
+
+
+
+
+ This quite simply lists the name of the source module which defines
+ the directive.
+
+ If the directive wasn't part of the original Apache version 1
+ distribution, the version in which it was introduced should be listed
+ here. If the directive has the same name as one from the NCSA HTTPd
+ server, any inconsistencies in behaviour between the two should also
+ be mentioned. Otherwise, this attribute should say "No
+ compatibility issues."
+
+Each Apache directive available in the standard Apache distribution is
+listed here. They are described using a consistent format, and there is
+a dictionary
+of the terms used in their descriptions available.
+
- Syntax: Example
+ Syntax: Example
+
- The Example directive activates the example module's content handler
+ The Example directive activates the example module's
+ content handler
for a particular location or file type. It takes no arguments. If
you browse to an URL to which the example content-handler applies, you
will get a display of the routines within the module and how and in
diff --git a/docs/manual/mod/mod_proxy.html b/docs/manual/mod/mod_proxy.html
index 4845e0b6e08..46cf83a55f7 100644
--- a/docs/manual/mod/mod_proxy.html
+++ b/docs/manual/mod/mod_proxy.html
@@ -17,13 +17,15 @@
This module is contained in the This module was experimental in Apache 1.1.x. As of Apache 1.2, mod_proxy
-stability is greatly improved.
+stability is greatly improved.
This allows or prevents Apache from functioning as a proxy
server. Setting ProxyRequests to 'off' does not disable use of the ProxyPass directive.
+
Example:
+Suppose the local server has address http://wibble.org/; then
-This directive is only useful for apache proxy servers within intranets.
+This directive is only useful for Apache proxy servers within intranets.
The NoProxy directive specifies a list of subnets, IP addresses, hosts
and/or domains, separated by spaces. A request to a host which matches
one or more of these is always served directly, without forwarding to
-the configured ProxyRemote proxy server(s).
+Example:
See Also:
-DNS Issues See Also:
+ DNS IssuesTerms Used to Describe Apache Directives
+
+
+
+
+ Default:
+ directive-name default-value
+
+ Context: context-list
+
+ Override: override
+
+ Status: status
+
+ Module: module-name
+
+ Compatibility: compatibility notes
+ Directive Terms
+
+
+
+ Syntax
+
+ Default
+
+ Context
+
+
+
+ Override
+
+ Status
+
+
+
+
+ Module
+
+ Compatibility
+ Terms Used to Describe Apache Directives
+
+
+
+
+ Default:
+ directive-name default-value
+
+ Context: context-list
+
+ Override: override
+
+ Status: status
+
+ Module: module-name
+
+ Compatibility: compatibility notes
+ Directive Terms
+
+
+
+ Syntax
+
+ Default
+
+ Context
+
+
+
+ Override
+
+ Status
+
+
+
+
+ Module
+
+ Compatibility
+ Apache Directives
-
+
+ Default: None
- Default: None
+ Context: server config, virtual host, directory,
+ .htaccess
- Context: server config, virtual host, directory, .htaccess
+ Override: Options
- Override: Options
+ Status: Extension
- Status: Extension
+ Module: mod_example
- Module: mod_example
+ Compatibility: Example is only
+ available in Apache 1.2 and later.
mod_proxy.c
file for Apache 1.1.x,
or the modules/proxy
subdirectory for Apache 1.2, and
-is not compiled in by default. It provides for an HTTP 1.0 caching proxy
+is not compiled in by default. It provides for an HTTP
+1.0 caching proxy
server. It is only available in Apache 1.1 and later. Common configuration
-questions are addressed here.
+questions are addressed after the directive
+descriptions.
Note:
Summary
@@ -61,18 +63,23 @@ and other protocols.
Syntax: ProxyRequests on/off
Default: ProxyRequests Off
Context: server config, virtual host
+Override: Not applicable
Status: Base
Module: mod_proxy
-Compatibility: ProxyRequest is only available in
+Compatibility: ProxyRequests is only available in
Apache 1.1 and later.
+
ProxyRemote
Syntax: ProxyRemote <match> <remote-server>
+Default: None
Context: server config, virtual host
+Override: Not applicable
Status: Base
Module: mod_proxy
Compatibility: ProxyRemote is only available in
@@ -90,7 +97,7 @@ partial URL for the remote server. Syntax:
<protocol> is the protocol that should be used to communicate
with the remote server; only "http" is supported by this module.
-
+
ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
@@ -102,9 +109,13 @@ In the last example, the proxy will forward FTP requests, encapsulated
as yet another HTTP proxy request, to another proxy which can handle
them.
+
+
ProxyPass
Syntax: ProxyPass <path> <url>
+Default: None
Context: server config, virtual host
+Override: Not applicable
Status: Base
Module: mod_proxy
Compatibility: ProxyPass is only available in
@@ -114,17 +125,23 @@ This directive allows remote servers to be mapped into the space of the local
server; the local server does not act as a proxy in the conventional sense,
but appears to be a mirror of the remote server. <path> is the name of
a local virtual path; <url> is a partial URL for the remote server.
-
-Suppose the local server has address http://wibble.org; then
+
ProxyPass /mirror/foo http://foo.com
-Will cause a local request for the http://wibble.org/mirror/foo/bar to be
-internally converted into a proxy request to http://foo.com/bar
+will cause a local request for the
+<http://wibble.org/mirror/foo/bar> to be
+internally converted into a proxy request to
+<http://foo.com/bar>.
+
+
ProxyBlock
Syntax: ProxyBlock <word/host/domain list>
+Default: None
Context: server config, virtual host
+Override: Not applicable
Status: Base
Module: mod_proxy
Compatibility: ProxyBlock is only available in
@@ -152,23 +169,29 @@ ProxyBlock *
blocks connections to all sites.
+
+
NoProxy
Syntax: NoProxy { <Domain>
| <SubNet>
| <IpAddr>
| <Hostname>
}
+Default: None
Context: server config, virtual host
+Override: Not applicable
Status: Base
Module: mod_proxy
Compatibility: NoProxy is only available in
Apache 1.3 and later.
Example:
+the configured ProxyRemote proxy server(s).
+
ProxyRemote * http://firewall.mycompany.com:81
@@ -178,7 +201,7 @@ The arguments to the NoProxy directive are one of the following type list:
-
Example: 192.168.123.7
- Note: An IPAddr does not need to be resolved by the DNS system, so
- it can result in more effective apache performance.
-
+ be resolved to one or more IPAddrs via the DNS domain name service.
+ It represents a logical host (in contrast to
+ Domains, see
+ above) and must be resolvable to at least one IPAddr (or often to a list of hosts
+ with different IPAddr's).
Examples: prep.ai.mit.edu
www.apache.org.
Note: In many situations, it is more effective to specify an
- IPAddr in place of a Hostname since a DNS lookup
+ IPAddr in place of a
+ Hostname since a DNS lookup
can be avoided. Name resolution in Apache can take a remarkable deal
of time when the connection to the name server uses a slow PPP
link.
@@ -258,20 +285,25 @@ The arguments to the NoProxy directive are one of the following type list:
DNS Issues
-This directive is only useful for apache proxy servers within intranets.
+This directive is only useful for Apache proxy servers within intranets.
The ProxyDomain directive specifies the default domain which the apache
proxy server will belong to. If a request to a host without a domain name
is encountered, a redirection response to the same host
with the configured Domain appended will be generated.
-
Example:
+
+Example:
ProxyRemote * http://firewall.mycompany.com:81 @@ -279,9 +311,13 @@ with the configured Domain appended will be generated. ProxyDomain .mycompany.com+
CacheSize 5
-Sets the desired space usage of the cache, in Kb (1024 byte units). Although +Sets the desired space usage of the cache, in KB (1024-byte units). Although usage may grow above this setting, the garbage collection will delete files until the usage is at or below this setting. +
Check the cache every <time> hours, and delete files if the space usage is greater than that set by CacheSize. +
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
If the expiry-period would be longer than that set by CacheMaxExpire, then the latter takes precedence. +
CacheDirLevels 3
CacheDirLevels sets the number of levels of subdirectories in the cache. Cached data will be saved this many directory levels below CacheRoot. +
CacheDirLength 1
CacheDirLength sets the number of characters in proxy cache subdirectory names. +
CacheDefaultExpire 1
If the document is fetched via a protocol that does not support expiry times, then use <time> hours as the expiry time. CacheMaxExpire does not -override. +override this setting. + +
-
@@ -477,10 +539,10 @@ depending on the speed with which the hostname lookups occur.
Can I use the Apache proxy module with my SOCKS proxy?
Yes. Just build Apache with the ruleSOCKS4=yes
in your -Configuration file, and follow the instructions there. SOCKS5 +Configuration file, and follow the instructions there. SOCKS5 capability can be added in a similar way (there's noSOCKS5
rule yet), so use theEXTRA_LDFLAGS
definition, or build Apache -normally and run it with the runsocks wrapper provided with SOCKS5, +normally and run it with the runsocks wrapper provided with SOCKS5, if your OS supports dynamically linked libraries.Some users have reported problems when using SOCKS version 4.2 on Solaris.