mod_proxy.html.en
来自「apache服务器源代码(版本号:2.2.2)」· EN 代码 · 共 1,107 行 · 第 1/5 页
EN
1,107 行
then</p> <div class="example"><p><code> ProxyPass /mirror/foo/ http://backend.example.com/ </code></p></div> <p>will cause a local request for <code>http://example.com/mirror/foo/bar</code> to be internally converted into a proxy request to <code>http://backend.example.com/bar</code>.</p> <p>The <code>!</code> directive is useful in situations where you don't want to reverse-proxy a subdirectory, <em>e.g.</em></p> <div class="example"><p><code> ProxyPass /mirror/foo/i !<br /> ProxyPass /mirror/foo http://backend.example.com </code></p></div> <p>will proxy all requests to <code>/mirror/foo</code> to <code>backend.example.com</code> <em>except</em> requests made to <code>/mirror/foo/i</code>.</p> <div class="note"><h3>Note</h3> <p>Order is important. you need to put the exclusions <em>before</em> the general <code class="directive">ProxyPass</code> directive.</p> </div> <p>As of Apache 2.1, the ability to use pooled connections to a backend server is available. Using the <code>key=value</code> parameters it is possible to tune this connection pooling. The default for a <code>Hard Maximum</code> for the number of connections is the number of threads per process in the active MPM. In the Prefork MPM, this is always 1, while with the Worker MPM it is controlled by the <code class="directive">ThreadsPerChild</code>.</p> <p>Setting <code>min</code> will determine how many connections will always be open to the backend server. Upto the Soft Maximum or <code>smax</code> number of connections will be created on demand. Any connections above <code>smax</code> are subject to a time to live or <code>ttl</code>. Apache will never create more than the Hard Maximum or <code>max</code> connections to the backend server.</p> <div class="example"><p><code> ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300 </code></p></div> <table> <tr><th>Parameter</th> <th>Default</th> <th>Description</th></tr> <tr><td>min</td> <td>0</td> <td>Minumum number of connections that will always be open to the backend server.</td></tr> <tr><td>max</td> <td>1...n</td> <td>Hard Maximum number of connections that will be allowed to the backend server. The default for a Hard Maximum for the number of connections is the number of threads per process in the active MPM. In the Prefork MPM, this is always 1, while with the Worker MPM it is controlled by the <code class="directive">ThreadsPerChild</code>. Apache will never create more than the Hard Maximum connections to the backend server.</td></tr> <tr><td>smax</td> <td>max</td> <td>Upto the Soft Maximum number of connections will be created on demand. Any connections above <code>smax</code> are subject to a time to live or <code>ttl</code>. </td></tr> <tr><td>ttl</td> <td>-</td> <td>Time To Live for the inactive connections above the <code>smax</code> connections in seconds. Apache will close all connections that has not been used inside that time period. </td></tr> <tr><td>timeout</td> <td><code class="directive">Timeout</code></td> <td>Connection timeout in seconds. If not set the Apache will wait until the free connection is available. This directive is used for limiting the number of connections to the backend server together with <code>max</code> parameter. </td></tr> <tr><td>acquire</td> <td>-</td> <td>If set this will be the maximum time to wait for a free connection in the connection pool. If there are no free connections in the pool the Apache will return <code>SERVER_BUSY</code> status to the client. </td></tr> <tr><td>keepalive</td> <td>Off</td> <td>This parameter should be used when you have a firewall between your Apache and the backend server, who tend to drop inactive connections. This flag will tell the Operating System to send <code>KEEP_ALIVE</code> messages on inactive connections (interval depends on global OS settings, generally 120ms), and thus prevent the firewall to drop the connection. To enable keepalive set this property value to <code>On</code>. </td></tr> <tr><td>retry</td> <td>60</td> <td>Connection pool worker retry timeout in seconds. If the connection pool worker to the backend server is in the error state, Apache will not forward any requests to that server until the timeout expires. This enables to shut down the backend server for maintenance, and bring it back online later. </td></tr> <tr><td>loadfactor</td> <td>1</td> <td>Worker load factor. Used with BalancerMember. It is a number between 1 and 100 and defines the normalized weighted load applied to the worker. </td></tr> <tr><td>route</td> <td>-</td> <td>Route of the worker when used inside load balancer. The route is a value appended to seesion id. </td></tr> <tr><td>redirect</td> <td>-</td> <td>Redirection Route of the worker. This value is usually set dynamically to enable safe removal of the node from the cluster. If set all requests without session id will be redirected to the BalancerMember that has route parametar equal as this value. </td></tr> </table> <p>If the Proxy directive scheme starts with the <code>balancer://</code> then a virtual worker that does not really communicate with the backend server will be created. Instead it is responsible for the management of several "real" workers. In that case the special set of parameters can be add to this virtual worker. </p> <table> <tr><th>Parameter</th> <th>Default</th> <th>Description</th></tr> <tr><td>lbmethod</td> <td>-</td> <td>Balancer load-balance method. Select the load-balancing scheduler method to use. Either <code>byrequests</code>, to perform weighted request counting or <code>bytraffic</code>, to perform weighted traffic byte count balancing. Default is <code>byrequests</code>. </td></tr> <tr><td>stickysession</td> <td>-</td> <td>Balancer sticky session name. The value is usually set to something like <code>JSESSIONID</code> or <code>PHPSESSIONID</code>, and it depends on the backend application server that support sessions. </td></tr> <tr><td>nofailover</td> <td>Off</td> <td>If set to <code>On</code> the session will break if the worker is in error state or disabled. Set this value to On if backend servers do not support session replication. </td></tr> <tr><td>timeout</td> <td>0</td> <td>Balancer timeout in seconds. If set this will be the maximum time to wait for a free worker. Default is not to wait. </td></tr> <tr><td>maxattempts</td> <td>1</td> <td>Maximum number of failover attempts before giving up. </td></tr> </table> <div class="example"><p><code> ProxyPass /special-area http://special.example.com/ smax=5 max=10<br /> ProxyPass / balancer://mycluster stickysession=jsessionid nofailover=On<br /> <Proxy balancer://mycluster><br /> <span class="indent"> BalancerMember http://1.2.3.4:8009<br /> BalancerMember http://1.2.3.5:8009 smax=10<br /> # Less powerful server, don't send as many requests there<br /> BalancerMember http://1.2.3.6:8009 smax=1 loadfactor=20<br /> </span> </Proxy> </code></p></div> <p>When used inside a <code class="directive"><a href="../mod/core.html#location"><Location></a></code> section, the first argument is omitted and the local directory is obtained from the <code class="directive"><a href="../mod/core.html#location"><Location></a></code>.</p> <p>If you require a more flexible reverse-proxy configuration, see the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directive with the <code>[P]</code> flag.</p></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="directive-section"><h2><a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a> <a name="proxypassreverse" id="proxypassreverse">Directive</a></h2><table class="directive"><tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adjusts the URL in HTTP response headers sent from a reverseproxied server</td></tr><tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassReverse [<var>path</var>] <var>url</var></code></td></tr><tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr><tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr><tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr></table> <p>This directive lets Apache adjust the URL in the <code>Location</code>, <code>Content-Location</code> and <code>URI</code> headers on HTTP redirect responses. This is essential when Apache is used as a reverse proxy to avoid by-passing the reverse proxy because of HTTP redirects on the backend servers which stay behind the reverse proxy.</p> <p>Only the HTTP response headers specifically mentioned above will be rewritten. Apache will not rewrite other response headers, nor will it rewrite URL references inside HTML pages. This means that if the proxied content contains absolute URL references, they will by-pass the proxy. A third-party module that will look inside the HTML and rewrite URL references is Nick Kew's <a href="http://apache.webthing.com/mod_proxy_html/">mod_proxy_html</a>.</p> <p><var>path</var> is the name of a local virtual path. <var>url</var> is a partial URL for the remote server - the same way they are used for the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p> <p>For example, suppose the local server has address <code>http://example.com/</code>; then</p> <div class="example"><p><code>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?