|
2 | 2 | <html lang="en"> |
3 | 3 | <head> |
4 | 4 | <meta charset="utf-8" /> |
5 | | - <title>HAProxy version 3.3.10 - Configuration Manual</title> |
| 5 | + <title>HAProxy version 3.3.10-36 - Configuration Manual</title> |
6 | 6 | <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> |
7 | 7 | <link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" /> |
8 | 8 | <link href="../css/page.css?0.4.2-15" rel="stylesheet" /> |
|
4717 | 4717 | You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br> |
4718 | 4718 | </p> |
4719 | 4719 | <p class="text-right"> |
4720 | | - <small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2026/05/11</b></small> |
| 4720 | + <small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2026/05/21</b></small> |
4721 | 4721 | </p> |
4722 | 4722 | </div> |
4723 | 4723 | <!-- /.sidebar --> |
|
4728 | 4728 | <div class="text-center"> |
4729 | 4729 | <h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1> |
4730 | 4730 | <h2>Configuration Manual</h2> |
4731 | | - <p><strong>version 3.3.10</strong></p> |
| 4731 | + <p><strong>version 3.3.10-36</strong></p> |
4732 | 4732 | <p> |
4733 | 4733 | 2026/05/11<br> |
4734 | 4734 |
|
@@ -10412,16 +10412,25 @@ <h2 id="chapter-3.2" data-target="3.2"><small><a class="small" href="#3.2">3.2.< |
10412 | 10412 | <a class="anchor" name="tune.quic.frontend.stream-data-ratio"></a><a class="anchor" name="3-tune.quic.frontend.stream-data-ratio"></a><a class="anchor" name="3.2-tune.quic.frontend.stream-data-ratio"></a><a class="anchor" name="tune.quic.frontend.stream-data-ratio (Global section)"></a><a class="anchor" name="tune.quic.frontend.stream-data-ratio (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.quic.frontend.stream-data-ratio"></a><a href="#3.2-tune.quic.frontend.stream-data-ratio">tune.quic.frontend.stream-data-ratio</a></b> <span style="color: #080"><0..100, in percent></span> <span class="label label-warning">(deprecated)</span></div><pre class="text">This keyword has been deprecated in 3.3 and will be removed in 3.5. It is |
10413 | 10413 | part of the streamlining process apply on QUIC configuration. If used, this |
10414 | 10414 | setting will only be applied on frontend connections. |
10415 | | -</pre><a class="anchor" name="tune.quic.be.stream.max-concurrent"></a><a class="anchor" name="3-tune.quic.be.stream.max-concurrent"></a><a class="anchor" name="3.2-tune.quic.be.stream.max-concurrent"></a><a class="anchor" name="tune.quic.be.stream.max-concurrent (Global section)"></a><a class="anchor" name="tune.quic.be.stream.max-concurrent (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.quic.be.stream.max-concurrent"></a><a href="#3.2-tune.quic.be.stream.max-concurrent">tune.quic.be.stream.max-concurrent</a></b> <span style="color: #080"><number></span></div><a class="anchor" name="tune.quic.fe.stream.max-concurrent"></a><a class="anchor" name="3-tune.quic.fe.stream.max-concurrent"></a><a class="anchor" name="3.2-tune.quic.fe.stream.max-concurrent"></a><a class="anchor" name="tune.quic.fe.stream.max-concurrent (Global section)"></a><a class="anchor" name="tune.quic.fe.stream.max-concurrent (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.quic.fe.stream.max-concurrent"></a><a href="#3.2-tune.quic.fe.stream.max-concurrent">tune.quic.fe.stream.max-concurrent</a></b> <span style="color: #080"><number></span></div><pre class="text">Sets the QUIC initial_max_streams_bidi transport parameter either on frontend |
10416 | | -or backend side. This is the maximum number of bidirectional streams that the |
10417 | | -remote peer will be authorized to open concurrently during the connection |
10418 | | -lifetime. On frontend side, this limits the number of concurrent HTTP/3 |
10419 | | -client requests. |
| 10415 | +</pre><a class="anchor" name="tune.quic.be.stream.max-concurrent"></a><a class="anchor" name="3-tune.quic.be.stream.max-concurrent"></a><a class="anchor" name="3.2-tune.quic.be.stream.max-concurrent"></a><a class="anchor" name="tune.quic.be.stream.max-concurrent (Global section)"></a><a class="anchor" name="tune.quic.be.stream.max-concurrent (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.quic.be.stream.max-concurrent"></a><a href="#3.2-tune.quic.be.stream.max-concurrent">tune.quic.be.stream.max-concurrent</a></b> <span style="color: #080"><number></span></div><a class="anchor" name="tune.quic.fe.stream.max-concurrent"></a><a class="anchor" name="3-tune.quic.fe.stream.max-concurrent"></a><a class="anchor" name="3.2-tune.quic.fe.stream.max-concurrent"></a><a class="anchor" name="tune.quic.fe.stream.max-concurrent (Global section)"></a><a class="anchor" name="tune.quic.fe.stream.max-concurrent (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.quic.fe.stream.max-concurrent"></a><a href="#3.2-tune.quic.fe.stream.max-concurrent">tune.quic.fe.stream.max-concurrent</a></b> <span style="color: #080"><number></span></div><pre class="text">On frontend side, this is used as the value for the advertised |
| 10416 | +initial_max_streams_bidi transport parameter. This is enforced as the maximum |
| 10417 | +number of bidirectional streams that the remote peer will be authorized to |
| 10418 | +open concurrently during the connection lifetime. This effectively limits the |
| 10419 | +number of concurrent HTTP/3 client requests. |
10420 | 10420 |
|
10421 | 10421 | The default value is 100. Note that if you reduces it, it can restrict the |
10422 | 10422 | buffering capabilities of streams on receive, which would result in poor |
10423 | 10423 | upload throughput. It can be corrected by increasing the QUIC stream rxbuf |
10424 | 10424 | connection setting. |
| 10425 | + |
| 10426 | +On backend side, this is enforced locally by haproxy to limit the number of |
| 10427 | +concurrent requests multiplexed over a single connection. This may be further |
| 10428 | +restricted by the peer flow control. It may be necessary to reduce the |
| 10429 | +default value of 100 to improve a site's responsiveness at the expense of a |
| 10430 | +higher number of opened backend connections. Similarly to the frontend side, |
| 10431 | +this setting also directly impacts the Rx buffering capability, this time |
| 10432 | +though limiting the HTTP download capacity. QUIC stream rxbuf setting can be |
| 10433 | +increased when dealing mostly with HTTP responses larger than "<a href="#tune.bufsize">tune.bufsize</a>". |
10425 | 10434 | </pre><div class="page-header"><b>See also:</b> "<a href="#tune.quic.be.stream.rxbuf">tune.quic.be.stream.rxbuf</a>", "<a href="#tune.quic.fe.stream.rxbuf">tune.quic.fe.stream.rxbuf</a>", "<a href="#tune.quic.be.stream.data-ratio">tune.quic.be.stream.data-ratio</a>", "<a href="#tune.quic.fe.stream.data-ratio">tune.quic.fe.stream.data-ratio</a>"</div> |
10426 | 10435 | <a class="anchor" name="tune.quic.frontend.max-streams-bidi"></a><a class="anchor" name="3-tune.quic.frontend.max-streams-bidi"></a><a class="anchor" name="3.2-tune.quic.frontend.max-streams-bidi"></a><a class="anchor" name="tune.quic.frontend.max-streams-bidi (Global section)"></a><a class="anchor" name="tune.quic.frontend.max-streams-bidi (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.quic.frontend.max-streams-bidi"></a><a href="#3.2-tune.quic.frontend.max-streams-bidi">tune.quic.frontend.max-streams-bidi</a></b> <span style="color: #080"><number></span> <span class="label label-warning">(deprecated)</span></div><pre class="text">This keyword has been deprecated in 3.3 and will be removed in 3.5. It is |
10427 | 10436 | part of the streamlining process apply on QUIC configuration. If used, this |
@@ -12970,7 +12979,10 @@ <h2 id="chapter-4.2" data-target="4.2"><small><a class="small" href="#4.2">4.2.< |
12970 | 12979 |
|
12971 | 12980 | none don't hash the key, the key will be used as a hash, this can be |
12972 | 12981 | useful to manually hash the key using a converter for that purpose |
12973 | | - and let haproxy use the result directly. |
| 12982 | + and let haproxy use the result directly. The operation will |
| 12983 | + convert the key to a string if it is not already, and parse it as |
| 12984 | + an integer whose value will be used as the key. Some input key |
| 12985 | + types might not be relevant here (e.g. IP addresses). |
12974 | 12986 |
|
12975 | 12987 | <modifier> indicates an optional method applied after hashing the key : |
12976 | 12988 |
|
@@ -22581,9 +22593,13 @@ <h2 id="chapter-5.2" data-target="5.2"><small><a class="small" href="#5.2">5.2.< |
22581 | 22593 | on the quality of the keys. |
22582 | 22594 | </pre><a class="anchor" name="id"></a><a class="anchor" name="5-id"></a><a class="anchor" name="5.2-id"></a><a class="anchor" name="id (Bind and server options)"></a><a class="anchor" name="id (Server and default-server options)"></a><div class="keyword"><b><a class="anchor" name="id"></a><a href="#5.2-id">id</a></b> <span style="color: #080"><value></span></div><pre class="text">May be used in the following contexts: tcp, http, log |
22583 | 22595 |
|
22584 | | -Set a persistent ID for the server. This ID must be positive and unique for |
22585 | | -the proxy. An unused ID will automatically be assigned if unset. The first |
22586 | | -assigned value will be 1. This ID is currently only returned in statistics. |
| 22596 | +Set a persistent ID for the server. This ID must be a 32-bit positive number |
| 22597 | +and unique for the proxy. An unused ID will automatically be assigned if |
| 22598 | +unset. The first assigned value will be 1. This ID is currently only returned |
| 22599 | +in statistics, and is used to place LB nodes when using consistent hash |
| 22600 | +algorithms when "<a href="#hash-key">hash-key</a>" is set to "<span class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">id<span class="caret"></span></a><ul class="dropdown-menu"><li class="dropdown-header">This keyword is available in sections :</li><li><a href="#id%20%28Alphabetically%20sorted%20keywords%20reference%29">Alphabetically sorted keywords reference</a></li><li><a href="#id%20%28Bind%20options%29">Bind options</a></li><li><a href="#id%20%28Server%20and%20default-server%20options%29">Server and default-server options</a></li></ul></span>" (the default). In this case, only |
| 22601 | +the 28 lowest bits of the value are used (i.e. (id % 268435356)), so better |
| 22602 | +only use values comprised between 1 and this value to avoid overlap. |
22587 | 22603 | </pre><a class="anchor" name="idle-ping"></a><a class="anchor" name="5-idle-ping"></a><a class="anchor" name="5.2-idle-ping"></a><a class="anchor" name="idle-ping (Bind and server options)"></a><a class="anchor" name="idle-ping (Server and default-server options)"></a><div class="keyword"><b><a class="anchor" name="idle-ping"></a><a href="#5.2-idle-ping">idle-ping</a></b> <span style="color: #080"><delay></span></div><pre class="text">May be used in the following contexts: tcp, http, log |
22588 | 22604 |
|
22589 | 22605 | Define an interval for periodic liveliness on idle backend connections. If |
@@ -22660,27 +22676,32 @@ <h2 id="chapter-5.2" data-target="5.2"><small><a class="small" href="#5.2">5.2.< |
22660 | 22676 | effect to extend the effective check interval. In such a case, reducing the |
22661 | 22677 | "<a href="#inter">inter</a>" setting will have a very limited effect as it will not be able to |
22662 | 22678 | reduce the time spent in the queue. |
22663 | | -</pre><a class="anchor" name="init-state"></a><a class="anchor" name="5-init-state"></a><a class="anchor" name="5.2-init-state"></a><a class="anchor" name="init-state (Bind and server options)"></a><a class="anchor" name="init-state (Server and default-server options)"></a><div class="keyword"><b><a class="anchor" name="init-state"></a><a href="#5.2-init-state">init-state</a></b> <span style="color: #800">{ fully-up | up | down | fully-down }</span></div><pre class="text">May be used in the following contexts: tcp, http |
| 22679 | +</pre><a class="anchor" name="init-state"></a><a class="anchor" name="5-init-state"></a><a class="anchor" name="5.2-init-state"></a><a class="anchor" name="init-state (Bind and server options)"></a><a class="anchor" name="init-state (Server and default-server options)"></a><div class="keyword"><b><a class="anchor" name="init-state"></a><a href="#5.2-init-state">init-state</a></b> <span style="color: #800">{ fully-up | up | down | fully-down | none }</span></div><pre class="text">May be used in the following contexts: tcp, http |
22664 | 22680 | </pre><div><p> May be used in sections :</p><table class="table table-bordered" border="0" cellspacing="0" cellpadding="0"> |
22665 | 22681 | <thead><tr><th>defaults</th><th>frontend</th><th>listen</th><th>backend</th></tr></thead> |
22666 | 22682 | <tr><td class="alert-error pagination-centered">no<br /><img src="../css/cross.png" alt="no" title="no" /></td><td class="alert-error pagination-centered">no<br /><img src="../css/cross.png" alt="no" title="no" /></td><td class="alert-success pagination-centered">yes<br /><img src="../css/check.png" alt="yes" title="yes" /></td><td class="alert-success pagination-centered">yes<br /><img src="../css/check.png" alt="yes" title="yes" /></td></tr> |
22667 | 22683 | </table></div> |
22668 | 22684 | <pre class="text">The "<a href="#init-state">init-state</a>" option sets the initial state of the server: |
22669 | 22685 | - when set to 'fully-up', the server is considered immediately available |
22670 | | - and can turn to the DOWN state when ALL health checks fail. |
22671 | | - - when set to 'up' (the default), the server is considered immediately |
22672 | | - available and will initiate a health check that can turn it to the DOWN |
22673 | | - state immediately if it fails. |
22674 | | - - when set to 'down', the server initially is considered unavailable and |
22675 | | - will initiate a health check that can turn it to the UP state immediately |
22676 | | - if it succeeds. |
| 22686 | + and, if health checks are enabled for this server, it will be turned to |
| 22687 | + the DOWN state when ALL health checks fail. |
| 22688 | + - when set to 'up', the server is considered immediately available and, if |
| 22689 | + health checks are enabled for this server, it will be turned to the DOWN |
| 22690 | + state immediately if the next health check fails. |
| 22691 | + - when set to 'down', the server initially is considered unavailable and, |
| 22692 | + if health checks are enabled for this server, it can be turned to the UP |
| 22693 | + state if the next health check succeeds. |
22677 | 22694 | - when set to 'fully-down', the server is initially considered unavailable |
22678 | | - and can turn to the UP state when ALL health checks succeed. |
| 22695 | + and, if health checks are enabled for this server, it will turned to the |
| 22696 | + UP state when ALL health checks succeed. |
| 22697 | + - when set to 'none' (the default value), init-state management is |
| 22698 | + disabled. It can be used to restore the default behavior when this |
| 22699 | + parameter was inherited from a 'default-server' directive. |
22679 | 22700 |
|
22680 | 22701 | The server's init-state is considered when the HAProxy instance is |
22681 | 22702 | (re)started, a new server is detected (for example via service discovery / |
22682 | 22703 | DNS resolution), a dynamic server is inlived, a server exits maintenance, |
22683 | | -etc. |
| 22704 | +etc. This directive cannot be used when the server is tracking another one. |
22684 | 22705 | </pre><div class="separator"> |
22685 | 22706 | <span class="label label-success">Examples:</span> |
22686 | 22707 | <pre class="prettyprint"> |
@@ -23712,7 +23733,11 @@ <h3 id="chapter-5.3.2" data-target="5.3.2"><small><a class="small" href="#5.3.2" |
23712 | 23733 | As a DNS server may not answer all the IPs in one DNS request, HAProxy keeps |
23713 | 23734 | a cache of previous answers, an answer will be considered obsolete after |
23714 | 23735 | <hold obsolete> seconds without the IP returned. |
23715 | | -</pre><a class="anchor" name="resolvers"></a><a class="anchor" name="5-resolvers"></a><a class="anchor" name="5.3.2-resolvers"></a><a class="anchor" name="resolvers (Bind and server options)"></a><a class="anchor" name="resolvers (The resolvers section)"></a><div class="keyword"><b><a class="anchor" name="resolvers"></a><a href="#5.3.2-resolvers">resolvers</a></b> <span style="color: #080"><resolvers id></span></div><pre class="text"> Creates a new name server list labeled <resolvers id> |
| 23736 | +</pre><a class="anchor" name="resolvers"></a><a class="anchor" name="5-resolvers"></a><a class="anchor" name="5.3.2-resolvers"></a><a class="anchor" name="resolvers (Bind and server options)"></a><a class="anchor" name="resolvers (The resolvers section)"></a><div class="keyword"><b><a class="anchor" name="resolvers"></a><a href="#5.3.2-resolvers">resolvers</a></b> <span style="color: #080"><resolvers id></span></div><pre class="text"> Creates a new name server list labeled <resolvers id>. As mentioned above, |
| 23737 | + the special name "default" always exists and will be automatically created if |
| 23738 | + not explicitly declared; this will be the one internal services such as |
| 23739 | + httpclient rely on. Declaring a "default" entry will affect how such services |
| 23740 | + perform their name resolution. |
23716 | 23741 |
|
23717 | 23742 | A resolvers section accept the following parameters: |
23718 | 23743 | </pre><a class="anchor" name="accepted_payload_size"></a><a class="anchor" name="5-accepted_payload_size"></a><a class="anchor" name="5.3.2-accepted_payload_size"></a><a class="anchor" name="accepted_payload_size (Bind and server options)"></a><a class="anchor" name="accepted_payload_size (The resolvers section)"></a><div class="keyword"><b><a class="anchor" name="accepted_payload_size"></a><a href="#5.3.2-accepted_payload_size">accepted_payload_size</a></b> <span style="color: #080"><nb></span></div><pre class="text">Defines the maximum payload size accepted by HAProxy and announced to all the |
@@ -33971,7 +33996,7 @@ <h2 id="chapter-12.8" data-target="12.8"><small><a class="small" href="#12.8">12 |
33971 | 33996 | <br> |
33972 | 33997 | <hr> |
33973 | 33998 | <div class="text-right"> |
33974 | | - HAProxy 3.3.10 – Configuration Manual<br> |
| 33999 | + HAProxy 3.3.10-36 – Configuration Manual<br> |
33975 | 34000 | <small>, 2026/05/11</small> |
33976 | 34001 | </div> |
33977 | 34002 | </div> |
|
0 commit comments