]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_proxy_express.xml
Add in new mod_proxy "extension" module: mod_proxy_express.
[apache] / docs / manual / mod / mod_proxy_express.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <!-- $LastChangedRevision$ -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <modulesynopsis metafile="mod_proxy_express.xml.meta">
24
25 <name>mod_proxy_express</name>
26 <description>Dynamic mass reverse proxy extension for
27 <module>mod_proxy</module></description>
28 <status>Extension</status>
29 <sourcefile>mod_proxy_express.c</sourcefile>
30 <identifier>proxy_express_module</identifier>
31
32 <summary>
33     <p>This module creates dynamically configured mass reverse
34     proxies, by mapping the Host: header of the HTTP request to
35     a server name and backend URL stored in a DBM file.
36     This allows for easy use of a huge number of reverse proxies
37     with no configuration changes. It is much less feature-full
38     than <module>mod_proxy_balancer</module>, which also provides
39     dynamic growth, but is intended to handle much, much
40     larger numbers of backends. It is ideally suited as a
41     front-end HTTP switch.</p>
42     
43     <p>This module <em>requires</em> the service of <module
44     >mod_proxy</module>.</p>
45
46     <note type="warning"><title>Warning</title>
47       <p>Do not enable proxying until you have <a
48       href="mod_proxy.html#access">secured your server</a>. Open proxy
49       servers are dangerous both to your network and to the Internet at
50       large.</p>
51     </note>
52
53 <note><title>Limitations</title>
54   <ul>
55     <li>This module is not intended to replace the dynamic capability of
56       <module>mod_proxy_balancer</module>. Instead, it is intended to be mostly
57       a lightweight and fast alternative to using <module>mod_rewrite</module>
58       with <directive>RewriteMap</directive> and the <code>[P]</code> flag
59       for mapped reverse proxying.
60     </li>
61     <li>It does not support regex or pattern matching at all.
62     </li>
63     <li>It emulates:
64       <example>
65         ProxyPass / backend.server:port<br />
66         ProxyPassReverse / backend.server:port<br />
67       </example>
68       That is, the entire URL is appended to the mapped backend
69       URL. This is in keeping with the intent of being a simple
70       but fast reverse proxy switch.
71     </li>
72   </ul>
73 </note>
74
75 </summary>
76 <seealso><module>mod_proxy</module></seealso>
77        
78 <directivesynopsis>
79 <name>ProxyExpressEnable</name>
80 <description>Enable the module functionality.</description>
81 <syntax>ProxyExpressEnable [on|off]</syntax>
82 <default>off</default>
83 <contextlist><context>server config</context><context>virtual host</context>
84   </contextlist>
85 <compatibility>Available in Apache 2.3.13 and later</compatibility>
86
87 <usage>
88   <p>The <directive>ProxyExpressEnable</directive> directive
89     controls whether the module will be active.</p>
90 </usage>
91 </directivesynopsis>
92
93 <directivesynopsis>
94 <name>ProxyExpressDBMFile</name>
95 <description>Pathname to DBM file.</description>
96 <syntax>ProxyExpressDBMFile &lt;pathname&gt;</syntax>
97 <default>None</default>
98 <contextlist><context>server config</context><context>virtual host</context>
99   </contextlist>
100 <compatibility>Available in Apache 2.3.13 and later</compatibility>
101
102 <usage>
103   <p>The <directive>ProxyExpressDBMFile</directive> directive
104     points to the location of the Express map DBM file. This
105     file serves to map the incoming server name, obtained from
106     the Host: header, to a backend URL.</p>
107
108     <note><title>Note</title>
109       <p>The file is constructed from a plain text file format using
110         the <code><a href="../programs/httxt2dbm.html">httxt2dbm</a></code> 
111         utility.</p>
112
113       <example><title>ProxyExpress map file</title>
114         ##<br />
115         ##express-map.txt:<br />
116         ##<br />
117         <br />
118         www1.example.com    http://192.168.211.2:8080<br />
119         www2.example.com   http://192.168.211.12:8088<br />
120         www3.example.com   http://192.168.212.10<br />
121       </example>
122
123       <example><title>Create DBM file</title>
124         httxt2dbm -i express-map.txt -o emap<br />
125         </example>
126
127       <example><title>Configuration</title>
128         ProxyExpressDBMFile emap<br />
129         </example>
130     </note>
131 </usage>
132 </directivesynopsis>
133
134 <directivesynopsis>
135 <name>ProxyExpressDBMType</name>
136 <description>DBM type of file.</description>
137 <syntax>ProxyExpressDBMFile &lt;type&gt;</syntax>
138 <default>"default"</default>
139 <contextlist><context>server config</context><context>virtual host</context>
140   </contextlist>
141 <compatibility>Available in Apache 2.3.13 and later</compatibility>
142
143 <usage>
144   <p>The <directive>ProxyExpressDBMType</directive> directive
145     controls the DBM type expected by the module. The default
146     is the default DBM type created with <code>
147     <a href="../programs/httxt2dbm.html">httxt2dbm</a></code></p>
148 </usage>
149 </directivesynopsis>
150
151 </modulesynopsis>