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 />      &lt;Proxy balancer://mycluster&gt;<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>      &lt;/Proxy&gt;    </code></p></div>        <p>When used inside a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</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">&lt;Location&gt;</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 + -
显示快捷键?