| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> |
| <HTML> |
| <HEAD> |
| <TITLE>Apache module mod_proxy</TITLE> |
| </HEAD> |
| |
| <BODY> |
| <IMG SRC="../images/apache_sub.gif" ALT=""> |
| <H1>Apache module mod_proxy</h1> |
| |
| This module is contained in the <code>mod_proxy.c</code> file, and |
| is not compiled in by default. It provides for a caching proxy server. |
| It is only available in Apache 1.1 and later. |
| |
| <h3>Note:</h3> |
| <p>This module is experimental. Use at your own risk.</p> |
| |
| <h2>Summary</h2> |
| |
| This module implements a proxy/cache for Apache. It implements |
| proxying capability for |
| <code>FTP</code>, |
| <code>HTTP/0.9</code>, and |
| <code>HTTP/1.0</code>. |
| The module can be configured to connect to other proxy modules for these |
| and other protocols. |
| |
| <h2>Directives</h2> |
| <ul> |
| <li><a href="#proxyrequests">ProxyRequests</a> |
| <li><a href="#proxyremote">ProxyRemote</a> |
| <li><a href="#proxypass">ProxyPass</a> |
| <li><a href="#cacheroot">CacheRoot</a> |
| <li><a href="#cachesize">CacheSize</a> |
| <li><a href="#cachegcinterval">CacheGcInterval</a> |
| <li><a href="#cachemaxexpire">CacheMaxExpire</a> |
| <li><a href="#cachelastmodifiedfactor">CacheLastModifiedFactor</a> |
| <li><a href="#cachedefaultexpire">CacheDefaultExpire</a> |
| <li><a href="#nocache">NoCache</a> |
| </ul> |
| |
| <hr> |
| |
| <A name="proxyrequests"><h2>ProxyRequests</h2></A> |
| <strong>Syntax:</strong> ProxyRequests <em>on/off</em><br> |
| <strong>Default:</strong> <code>ProxyRequests Off</code><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> ProxyRequest is only available in |
| Apache 1.1 and later.<p> |
| |
| This allows or prevents Apache from functioning as a proxy |
| server. Setting ProxyRequests to 'off' does not disable use of the <a |
| href="#proxypass">ProxyPass</a> directive. |
| |
| <A name="proxyremote"><h2>ProxyRemote</h2></A> |
| <strong>Syntax:</strong> ProxyRemote <em><match> <remote-server></em><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> ProxyRemote is only available in |
| Apache 1.1 and later.<p> |
| |
| This defines remote proxies to this proxy. <match> is either the |
| name of a URL-scheme that the remote server supports, or a partial URL |
| for which the remote server should be used, or '$' to indicate the |
| server should be contacted for all requests. <remote-server> is a |
| partial URL for the remote server. Syntax: |
| |
| <pre> |
| <remote-server> = <protocol>://<hostname>[:port] |
| </pre> |
| <protocol> is the protocol that should be used to communicate with the |
| remote |
| server; only "http" is supported by this module. |
| |
| Example: |
| <pre> |
| ProxyRemote ftp http://ftpproxy.mydomain.com:8080 |
| ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000 |
| ProxyRemote * http://cleversite.com |
| </pre> |
| |
| <A name="proxypass"><h2>ProxyPass</h2></A> |
| <strong>Syntax:</strong> ProxyPass <em><path> <url></em><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> ProxyPass is only available in |
| Apache 1.1 and later.<p> |
| |
| 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 |
| <pre> |
| ProxyPass /mirror/foo http://foo.com |
| </pre> |
| 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 |
| |
| <A name="cacheroot"><h2>CacheRoot</h2></A> |
| <strong>Syntax:</strong> CacheRoot <em><directory></em><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> CacheRoot is only available in |
| Apache 1.1 and later.<p> |
| |
| Sets the name of the directory to contain cache files; this must be |
| writable |
| by the httpd server. |
| |
| <A name="cachesize"><h2>CacheSize</h2></A> |
| <strong>Syntax:</strong> CacheSize <em><size></em><br> |
| <strong>Default:</strong> <code>CacheSize 5</code><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> CacheSize is only available in |
| Apache 1.1 and later.<p> |
| |
| 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. |
| |
| <A name="cachegcinterval"><h2>CacheGcInterval</h2></A> |
| <strong>Syntax:</strong> CacheGcInterval <em><time></em><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> CacheGcinterval is only available in |
| Apache 1.1 and later.<p> |
| |
| Check the cache every <time> hours, and delete files if the space |
| usage is greater than that set by CacheSize. |
| |
| <A name="cachemaxexpire"><h2>CacheMaxExpire</h2></A> |
| <strong>Syntax:</strong> CacheMaxExpire <em><time></em><br> |
| <strong>Default:</strong> </code>CacheMaxExpire 24</code><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> CacheMaxExpire is only available in |
| Apache 1.1 and later.<p> |
| |
| Cachable HTTP documents will be retained for at most <time> hours without |
| checking the origin server. Thus documents can be at most <time> |
| hours out of date. This restriction is enforced even if an expiry date |
| was supplied with the document. |
| |
| <A name="cachelastmodifiedfactor"><h2>CacheLastModifiedFactor</h2></A> |
| <strong>Syntax:</strong> CacheLastModifiedFactor <em><factor></em><br> |
| <strong>Default:</strong> </code>CacheLastModifiedFactor 0.1</code><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> CacheLastModified is only available in |
| Apache 1.1 and later.<p> |
| |
| If the origin HTTP server did not supply an expiry date for the |
| document, then estimate on using the formula |
| <pre> |
| expiry-period = time-since-last-modification * <factor> |
| </pre> |
| For example, if the document was last modified 10 hours ago, and |
| <factor> is 0.1, then the expiry period wil be set to 10*0.1 = 1 hour. |
| |
| <p>If the expiry-period would be longer than that set by CacheMaxExpire, |
| then the latter takes precedence. |
| |
| <A name="cachedefaultexpire"><h2>CacheDefaultExpire</h2></A> |
| <strong>Syntax:</strong> CacheDefaultExpire <em><time></em><br> |
| <strong>Default:</strong> </code>CacheDefaultExpire 1</code><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> CacheDefaultExpire is only available in |
| Apache 1.1 and later.<p> |
| |
| If the document is fetched via a protocol that does not support expirytimes, |
| then use <time> as the expiry time. |
| <a href="#cachemaxexpire">CacheMaxExpire</a> does <strong>not</strong> |
| override. |
| |
| <A name="nocache"><h2>NoCache</h2></A> |
| <strong>Syntax:</strong> NoCache <em><host/domain list></em><br> |
| <strong>Context:</strong> server config<br> |
| <strong>Status:</strong> Base<br> |
| <strong>Module:</strong> mod_proxy<br> |
| <strong>Compatibility:</strong> NoCache is only available in |
| Apache 1.1 and later.<p> |
| |
| The NoCache directive specifies a list of hosts and/or domains, separated |
| by spaces. HTTP documents from hosts or domains in the list are <em>not</em> |
| cached by the proxy server. Example: |
| |
| <pre> |
| NoCache joes.garage.com some.host.co.uk wotsamattau.edu |
| </pre> |
| |
| <p><hr> |
| |
| <A HREF="../"><IMG SRC="../images/apache_home.gif" ALT="Home"></A> |
| <A HREF="./"><IMG SRC="../images/apache_index.gif" ALT="Index"></A> |
| |
| </BODY> |
| </HTML> |
| |