Skip to content

Commit bb91a93

Browse files
author
HAProxy Community
committed
Update docs for 2.4
1 parent 60e4ea4 commit bb91a93

File tree

3 files changed

+83
-29
lines changed

3 files changed

+83
-29
lines changed

docs/2.4/configuration.html

Lines changed: 66 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<title>HAProxy version 2.4.28-1 - Configuration Manual</title>
5+
<title>HAProxy version 2.4.28-65 - Configuration Manual</title>
66
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
77
<link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" />
88
<link href="../css/page.css?0.4.2-15" rel="stylesheet" />
@@ -3757,7 +3757,7 @@
37573757
You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
37583758
</p>
37593759
<p class="text-right">
3760-
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2024/11/08</b></small>
3760+
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/04/17</b></small>
37613761
</p>
37623762
</div>
37633763
<!-- /.sidebar -->
@@ -3768,7 +3768,7 @@
37683768
<div class="text-center">
37693769
<h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
37703770
<h2>Configuration Manual</h2>
3771-
<p><strong>version 2.4.28-1</strong></p>
3771+
<p><strong>version 2.4.28-65</strong></p>
37723772
<p>
37733773
2024/11/08<br>
37743774

@@ -5434,6 +5434,57 @@ <h2 id="chapter-2.4" data-target="2.4"><small><a class="small" href="#2.4">2.4.<
54345434
- a non-nul integer (e.g. '1'), always returns &quot;true&quot;.
54355435
- a predicate optionally followed by argument(s) in parenthesis.
54365436

5437+
The same line tokenizer and argument parser are used as for the rest of the
5438+
configuration language. Words are split around consecutive series of one or
5439+
more unquoted spaces or tabs, and are reassembled together using a single space
5440+
to delimit them before evaluation, in order to save the user from having to
5441+
quote the entire line. But this also means that spaces surrounding commas or
5442+
parenthesis are definitely part of the value, which is not always expected.
5443+
For example, the expression below:
5444+
5445+
.if defined( HAPROXY_MWORKER )
5446+
5447+
will test for the existence of variable &quot; HAPROXY_MWORKER &quot; (with spaces),
5448+
and this one:
5449+
5450+
.if streq(&quot;$ENABLE_SSL&quot;, 1)
5451+
5452+
will compare the environment variable &quot;ENABLE_SSL&quot; to the value &quot; 1&quot; (with a
5453+
single leading space). The reason is the line is first split into words like
5454+
this:
5455+
5456+
.if streq(&quot;$ENABLE_SSL&quot;, 1)
5457+
|---|--------------------| |--|
5458+
1 2 3
5459+
5460+
then the weak quoting is applied and environment variable &quot;$ENABLE_SSL&quot; is
5461+
resolved (let's say for example that ENABLE_SSL=0), and finally the words are
5462+
reassembled into a single string by placing a single space between the words:
5463+
5464+
.if streq(0, 1)
5465+
|---|-------|--|
5466+
1 2 3
5467+
5468+
and only then it is parsed as a single expression. The space that was inserted
5469+
between the comma and &quot;1&quot; is still part of the argument value, making this
5470+
argument &quot; 1&quot;:
5471+
5472+
.if streq(0, 1)
5473+
|---|-----|-|--|
5474+
\ \ \ \_ argument2: &quot; 1&quot;
5475+
\ \ \___ argument1: &quot;0&quot;
5476+
\ \_______ function: &quot;streq&quot;
5477+
\___________ directive: &quot;.if&quot;
5478+
5479+
It's visible here that even if ENABLE_SSL had been equal to &quot;1&quot;, it wouldn't
5480+
have matched &quot; 1&quot; since the string would differ by one space.
5481+
5482+
Note: as explained in section &quot;2.2. Quoting and escaping&quot;, a good rule of thumb
5483+
is to never insert unneeded spaces inside expressions.
5484+
5485+
Note that like in other languages, the AND operator has precedence over the OR
5486+
operator, so that &quot;A &amp;&amp; B || C &amp;&amp; D&quot; evalues as &quot;(A &amp;&amp; B) || (C &amp;&amp; D)&quot;.
5487+
54375488
The list of currently supported predicates is the following:
54385489

54395490
- defined(&lt;name&gt;) : returns true if an environment variable &lt;name&gt;
@@ -5679,6 +5730,7 @@ <h2 id="chapter-2.7" data-target="2.7"><small><a class="small" href="#2.7">2.7.<
56795730
- <a href="#nopoll">nopoll</a>
56805731
- <a href="#noreuseport">noreuseport</a>
56815732
- <a href="#nosplice">nosplice</a>
5733+
- <a href="#profiling.memory">profiling.memory</a>
56825734
- <a href="#profiling.tasks">profiling.tasks</a>
56835735
- <a href="#server-state-base">server-state-base</a>
56845736
- <a href="#server-state-file">server-state-file</a>
@@ -7976,7 +8028,7 @@ <h2 id="chapter-4.1" data-target="4.1"><small><a class="small" href="#4.1">4.1.<
79768028
<tr><td ><a href="#4-option%20tcp-smart-accept"><span class="pull-right"><span>(*)</span></span>option tcp-smart-accept</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered">&nbsp;</td></tr>
79778029
<tr><td ><a href="#4-option%20tcp-smart-connect"><span class="pull-right"><span>(*)</span></span>option tcp-smart-connect</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered">&nbsp;</td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td></tr>
79788030
<tr><td ><a href="#4-option%20tcpka">option tcpka</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td></tr>
7979-
<tr><td ><a href="#4-option%20tcplog">option tcplog</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td></tr>
8031+
<tr><td ><a href="#4-option%20tcplog">option tcplog</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered">&nbsp;</td></tr>
79808032
<tr><td ><a href="#4-option%20transparent"><span class="pull-right"><span>(*)</span></span>option transparent</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered">&nbsp;</td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td></tr>
79818033
<tr><td ><a href="#4-option%20idle-close-on-response"><span class="pull-right"><span>(*)</span></span>option idle-close-on-response</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered">&nbsp;</td></tr>
79828034
<tr><td ><a href="#4-external-check%20command">external-check command</a></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered">&nbsp;</td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td><td class="pagination-centered"><img src="../css/check.png" alt="X" title="yes" /></td></tr>
@@ -13328,7 +13380,8 @@ <h2 id="chapter-4.2" data-target="4.2"><small><a class="small" href="#4.2">4.2.<
1332813380
third retry. You can disable redispatches with a value of 0.</pre>
1332913381
</div>
1333013382
<pre class="text">In HTTP mode, if a server designated by a cookie is down, clients may
13331-
definitely stick to it because they cannot flush the cookie, so they will not
13383+
definitely stick to it, for example when using &quot;<a href="#option%20persist">option persist</a>&quot; or
13384+
&quot;<a href="#force-persist">force-persist</a>&quot;, because they cannot flush the cookie, so they will not
1333213385
be able to access the service anymore.
1333313386

1333413387
Specifying &quot;<a href="#option%20redispatch">option redispatch</a>&quot; will allow the proxy to break cookie or
@@ -13360,7 +13413,7 @@ <h2 id="chapter-4.2" data-target="4.2"><small><a class="small" href="#4.2">4.2.<
1336013413

1336113414
If this option has been enabled in a &quot;defaults&quot; section, it can be disabled
1336213415
in a specific instance by prepending the &quot;no&quot; keyword before it.
13363-
</pre><div class="page-header"><b>See also :</b> &quot;<a href="#retries">retries</a>&quot;, &quot;<a href="#force-persist">force-persist</a>&quot;</div>
13416+
</pre><div class="page-header"><b>See also :</b> &quot;<a href="#option%20persist">option persist</a>&quot;, &quot;<a href="#force-persist">force-persist</a>&quot;, &quot;<a href="#retries">retries</a>&quot;</div>
1336413417
<a class="anchor" name="option"></a><a class="anchor" name="4-option"></a><a class="anchor" name="4.2-option"></a><a class="anchor" name="option (Proxies)"></a><a class="anchor" name="option (Alphabetically sorted keywords reference)"></a><a class="anchor" name="option redis-check"></a><a class="anchor" name="4-option redis-check"></a><a class="anchor" name="4.2-option redis-check"></a><a class="anchor" name="option redis-check (Proxies)"></a><a class="anchor" name="option redis-check (Alphabetically sorted keywords reference)"></a><div class="keyword"><b><a class="anchor" name="option redis-check"></a><a href="#4.2-option%20redis-check">option redis-check</a></b></div><pre class="text">Use redis health checks for server testing
1336513418
</pre><div><p> May be used in sections :</p><table class="table table-bordered" border="0" cellspacing="0" cellpadding="0">
1336613419
<thead><tr><th>defaults</th><th>frontend</th><th>listen</th><th>backend</th></tr></thead>
@@ -16292,8 +16345,8 @@ <h2 id="chapter-4.2" data-target="4.2"><small><a class="small" href="#4.2">4.2.<
1629216345
<span class="comment"># and reject everything else. (works for HTTP/1 and HTTP/2 connections)</span>
1629316346
acl is_host_com hdr(Host) -i example.com
1629416347
tcp-request inspect-delay 5s
16295-
tcp-request switch-mode http if HTTP
16296-
tcp-request reject <span class="comment"># non-HTTP traffic is implicit here</span>
16348+
tcp-request content switch-mode http if HTTP
16349+
tcp-request content reject <span class="comment"># non-HTTP traffic is implicit here</span>
1629716350
...
1629816351
http-request reject unless is_host_com
1629916352
</code></pre>
@@ -23564,9 +23617,10 @@ <h2 id="chapter-8.4" data-target="8.4"><small><a class="small" href="#8.4">8.4.<
2356423617
instance during a POST request, the time already runs, and this can distort
2356523618
apparent response time. For this reason, it's generally wise not to trust
2356623619
too much this field for POST requests initiated from clients behind an
23567-
untrusted network. A value of &quot;-1&quot; here means that the last the response
23568-
header (empty line) was never seen, most likely because the server timeout
23569-
stroke before the server managed to process the request.
23620+
untrusted network. A value of &quot;-1&quot; here means that the last response header
23621+
(empty line) was never seen, most likely because the server timeout stroke
23622+
before the server managed to process the request or because the server
23623+
returned an invalid response.
2357023624

2357123625
- Td: this is the total transfer time of the response payload till the last
2357223626
byte sent to the client. In HTTP it starts after the last response header
@@ -24801,7 +24855,7 @@ <h2 id="chapter-11.3" data-target="11.3"><small><a class="small" href="#11.3">11
2480124855
<br>
2480224856
<hr>
2480324857
<div class="text-right">
24804-
HAProxy 2.4.28-1 &ndash; Configuration Manual<br>
24858+
HAProxy 2.4.28-65 &ndash; Configuration Manual<br>
2480524859
<small>, 2024/11/08</small>
2480624860
</div>
2480724861
</div>

docs/2.4/intro.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<title>HAProxy version 2.4.28-1 - Starter Guide</title>
5+
<title>HAProxy version 2.4.28-65 - Starter Guide</title>
66
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
77
<link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" />
88
<link href="../css/page.css?0.4.2-15" rel="stylesheet" />
@@ -484,7 +484,7 @@
484484
You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
485485
</p>
486486
<p class="text-right">
487-
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2024/11/08</b></small>
487+
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/04/17</b></small>
488488
</p>
489489
</div>
490490
<!-- /.sidebar -->
@@ -495,7 +495,7 @@
495495
<div class="text-center">
496496
<h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
497497
<h2>Starter Guide</h2>
498-
<p><strong>version 2.4.28-1</strong></p>
498+
<p><strong>version 2.4.28-65</strong></p>
499499
<p>
500500
<br>
501501

@@ -2515,7 +2515,7 @@ <h2 id="chapter-4.4" data-target="4.4"><small><a class="small" href="#4.4">4.4.<
25152515
<br>
25162516
<hr>
25172517
<div class="text-right">
2518-
HAProxy 2.4.28-1 &ndash; Starter Guide<br>
2518+
HAProxy 2.4.28-65 &ndash; Starter Guide<br>
25192519
<small>, </small>
25202520
</div>
25212521
</div>

docs/2.4/management.html

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<title>HAProxy version 2.4.28-1 - Management Guide</title>
5+
<title>HAProxy version 2.4.28-65 - Management Guide</title>
66
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
77
<link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" />
88
<link href="../css/page.css?0.4.2-15" rel="stylesheet" />
@@ -531,7 +531,7 @@
531531
You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
532532
</p>
533533
<p class="text-right">
534-
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2024/11/08</b></small>
534+
<small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2025/04/17</b></small>
535535
</p>
536536
</div>
537537
<!-- /.sidebar -->
@@ -542,7 +542,7 @@
542542
<div class="text-center">
543543
<h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
544544
<h2>Management Guide</h2>
545-
<p><strong>version 2.4.28-1</strong></p>
545+
<p><strong>version 2.4.28-65</strong></p>
546546
<p>
547547
<br>
548548

@@ -1642,9 +1642,9 @@ <h1 id="chapter-summary" data-target="summary">Summary</h1>
16421642
Unix socket.
16431643

16441644
Statistics are regroup in categories labelled as domains, corresponding to the
1645-
multiple components of HAProxy. There are two domains available: proxy and dns.
1646-
If not specified, the proxy domain is selected. Note that only the proxy
1647-
statistics are printed on the HTTP page.
1645+
multiple components of HAProxy. There are two domains available: proxy and
1646+
resolvers. If not specified, the proxy domain is selected. Note that only the
1647+
proxy statistics are printed on the HTTP page.
16481648
</pre></div>
16491649
<a class="anchor" id="9.1" name="9.1"></a>
16501650
<h2 id="chapter-9.1" data-target="9.1"><small><a class="small" href="#9.1">9.1.</a></small> CSV format</h2>
@@ -3207,12 +3207,12 @@ <h2 id="chapter-9.3" data-target="9.3"><small><a class="small" href="#9.3">9.3.<
32073207
The special id &quot;all&quot; dumps the states of all sessions, which must be avoided
32083208
as much as possible as it is highly CPU intensive and can take a lot of time.
32093209
</pre><a class="anchor" name="show"></a><a class="anchor" name="9-show"></a><a class="anchor" name="9.3-show"></a><a class="anchor" name="show (Statistics and monitoring)"></a><a class="anchor" name="show (Unix Socket commands)"></a><a class="anchor" name="show stat"></a><a class="anchor" name="9-show stat"></a><a class="anchor" name="9.3-show stat"></a><a class="anchor" name="show stat (Statistics and monitoring)"></a><a class="anchor" name="show stat (Unix Socket commands)"></a><div class="keyword"><b><a class="anchor" name="show stat"></a><a href="#9.3-show%20stat">show stat</a></b> <span style="color: #008">[domain <span style="color: #080">&lt;resolvers|proxy&gt;</span>]</span> <span style="color: #008">[<span style="color: #800">{<span style="color: #080">&lt;iid&gt;</span>|<span style="color: #080">&lt;proxy&gt;</span>}</span> <span style="color: #080">&lt;type&gt;</span> <span style="color: #080">&lt;sid&gt;</span>]</span> \
3210-
<span style="color: #008">[typed|json]</span> <span style="color: #008">[desc]</span> <span style="color: #008">[up|no-maint]</span></div><pre class="text">Dump statistics. The domain is used to select which statistics to print; dns
3211-
and proxy are available for now. By default, the CSV format is used; you can
3212-
activate the extended typed output format described in the section above if
3213-
&quot;typed&quot; is passed after the other arguments; or in JSON if &quot;json&quot; is passed
3214-
after the other arguments. By passing &lt;id&gt;, &lt;type&gt; and &lt;sid&gt;, it is possible
3215-
to dump only selected items :
3210+
<span style="color: #008">[typed|json]</span> <span style="color: #008">[desc]</span> <span style="color: #008">[up|no-maint]</span></div><pre class="text">Dump statistics. The domain is used to select which statistics to print;
3211+
resolvers and proxy are available for now. By default, the CSV format is used;
3212+
you can activate the extended typed output format described in the section
3213+
above if &quot;typed&quot; is passed after the other arguments; or in JSON if &quot;json&quot; is
3214+
passed after the other arguments. By passing &lt;id&gt;, &lt;type&gt; and &lt;sid&gt;, it is
3215+
possible to dump only selected items :
32163216
- &lt;iid&gt; is a proxy ID, -1 to dump everything. Alternatively, a proxy name
32173217
&lt;proxy&gt; may be specified. In this case, this proxy's ID will be used as
32183218
the ID selector.
@@ -4155,7 +4155,7 @@ <h2 id="chapter-9.4" data-target="9.4"><small><a class="small" href="#9.4">9.4.<
41554155
<br>
41564156
<hr>
41574157
<div class="text-right">
4158-
HAProxy 2.4.28-1 &ndash; Management Guide<br>
4158+
HAProxy 2.4.28-65 &ndash; Management Guide<br>
41594159
<small>, </small>
41604160
</div>
41614161
</div>

0 commit comments

Comments
 (0)