📄 mod_proxy_balancer.html.en
字号:
<table><tr><th>worker</th> <th class="data">a</th> <th class="data">b</th> <th class="data">c</th></tr><tr><th>lbfactor</th> <td class="data">1</td> <td class="data">4</td> <td class="data">1</td></tr></table> <p>worker <var>b</var> will, on average, get 4 times the requests that <var>a</var> and <var>c</var> will.</p> <p>The following asymmetric configuration works as one would expect:</p> <table><tr><th>worker</th> <th class="data">a</th> <th class="data">b</th></tr><tr><th>lbfactor</th> <td class="data">70</td> <td class="data">30</td></tr><tr><td class="data" colspan="2"> </td></tr><tr><th>lbstatus</th> <td class="data"><em>-30</em></td> <td class="data">30</td></tr><tr><th>lbstatus</th> <td class="data">40</td> <td class="data"><em>-40</em></td></tr><tr><th>lbstatus</th> <td class="data"><em>10</em></td> <td class="data">-10</td></tr><tr><th>lbstatus</th> <td class="data"><em>-20</em></td> <td class="data">20</td></tr><tr><th>lbstatus</th> <td class="data"><em>-50</em></td> <td class="data">50</td></tr><tr><th>lbstatus</th> <td class="data">20</td> <td class="data"><em>-20</em></td></tr><tr><th>lbstatus</th> <td class="data"><em>-10</em></td> <td class="data">10</td></tr><tr><th>lbstatus</th> <td class="data"><em>-40</em></td> <td class="data">40</td></tr><tr><th>lbstatus</th> <td class="data">30</td> <td class="data"><em>-30</em></td></tr><tr><th>lbstatus</th> <td class="data"><em>0</em></td> <td class="data">0</td></tr><tr><td class="data" colspan="3">(repeat)</td></tr></table> <p>That is after 10 schedules, the schedule repeats and 7 <var>a</var> are selected with 3 <var>b</var> interspersed.</p></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="traffic" id="traffic">Weighted Traffic Counting Algorithm</a></h2> <p>Enabled via <code>lbmethod=bytraffic</code>, the idea behind this scheduler is very similar to the Request Counting method, with the following changes:</p> <p><dfn>lbfactor</dfn> is <em>how much traffic, in bytes, we want this worker to handle</em>. This is also a normalized value representing their "share" of the amount of work to be done, but instead of simply counting the number of requests, we take into account the amount of traffic this worker has seen.</p> <p>If a balancer is configured as follows:</p> <table><tr><th>worker</th> <th class="data">a</th> <th class="data">b</th> <th class="data">c</th></tr><tr><th>lbfactor</th> <td class="data">1</td> <td class="data">2</td> <td class="data">1</td></tr></table> <p>Then we mean that we want <var>b</var> to process twice the amount of bytes than <var>a</var> or <var>c</var> should. It does not necessarily mean that <var>b</var> would handle twice as many requests, but it would process twice the I/O. Thus, the size of the request and response are applied to the weighting and selection algorithm.</p></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="busyness" id="busyness">Pending Request Counting Algorithm</a></h2> <p>Enabled via <code>lbmethod=bybusyness</code>, this scheduler keeps track of how many requests each worker is assigned at present. A new request is automatically assigned to the worker with the lowest number of active requests. This is useful in the case of workers that queue incoming requests independently of Apache, to ensure that queue length stays even and a request is always given to the worker most likely to service it fastest.</p> <p>In the case of multiple least-busy workers, the statistics (and weightings) used by the Request Counting method are used to break the tie. Over time, the distribution of work will come to resemble that characteristic of <code>byrequests</code>.</p></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="environment" id="environment">Exported Environment Variables</a></h2> <p>At present there are 6 environment variables exported:</p> <dl> <dt><var><a name="balancer_session_sticky" id="balancer_session_sticky">BALANCER_SESSION_STICKY</a></var></dt> <dd> <p>This is assigned the <var>stickysession</var> value used in the current request. It is the cookie or parameter name used for sticky sessions</p> </dd> <dt><var><a name="balancer_session_route" id="balancer_session_route">BALANCER_SESSION_ROUTE</a></var></dt> <dd> <p>This is assigned the <var>route</var> parsed from the current request.</p> </dd> <dt><var><a name="balancer_name" id="balancer_name">BALANCER_NAME</a></var></dt> <dd> <p>This is assigned the name of the balancer used for the current request. The value is something like <code>balancer://foo</code>.</p> </dd> <dt><var><a name="balancer_worker_name" id="balancer_worker_name">BALANCER_WORKER_NAME</a></var></dt> <dd> <p>This is assigned the name of the worker used for the current request. The value is something like <code>http://hostA:1234</code>.</p> </dd> <dt><var><a name="balancer_worker_route" id="balancer_worker_route">BALANCER_WORKER_ROUTE</a></var></dt> <dd> <p>This is assigned the <var>route</var> of the worker that will be used for the current request.</p> </dd> <dt><var><a name="balancer_route_changed" id="balancer_route_changed">BALANCER_ROUTE_CHANGED</a></var></dt> <dd> <p>This is set to 1 if the session route does not match the worker route (BALANCER_SESSION_ROUTE != BALANCER_WORKER_ROUTE) or the session does not yet have an established route. This can be used to determine when/if the client needs to be sent an updated route when sticky sessions are used.</p> </dd> </dl></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="enable" id="enable">Enabling Balancer Manager Support</a></h2> <p>This module <em>requires</em> the service of <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>. Balancer manager enables dynamic update of balancer members. You can use balancer manager to change the balance factor or a particular member, or put it in the off line mode. </p> <p>Thus, in order to get the ability of load balancer management, <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> and <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> have to be present in the server.</p> <p>To enable load balancer management for browsers from the example.com domain add this code to your <code>httpd.conf</code> configuration file</p><div class="example"><p><code> <Location /balancer-manager><br /> SetHandler balancer-manager<br /><br /> Order Deny,Allow<br /> Deny from all<br /> Allow from .example.com<br /> </Location></code></p></div> <p>You can now access load balancer manager by using a Web browser to access the page <code>http://your.server.name/balancer-manager</code></p></div></div><div class="bottomlang"><p><span>Available Languages: </span><a href="../en/mod/mod_proxy_balancer.html" title="English"> en </a> |<a href="../ja/mod/mod_proxy_balancer.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p></div><div id="footer"><p class="apache">Copyright 2008 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p><p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -