Skip to content

Commit 64a345b

Browse files
author
HAProxy Community
committed
Update docs for dev
1 parent 70c212d commit 64a345b

File tree

3 files changed

+59
-20
lines changed

3 files changed

+59
-20
lines changed

docs/dev/configuration.html

Lines changed: 51 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 3.2-dev12-29 - Configuration Manual</title>
5+
<title>HAProxy version 3.2-dev12-50 - 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" />
@@ -2339,7 +2339,9 @@
23392339

23402340
<a class="list-group-item" href="#mailers">mailers</a>
23412341

2342-
<a class="list-group-item" href="#map">map</a>
2342+
<a class="list-group-item" href="#map (ACME)">map (ACME)</a>
2343+
2344+
<a class="list-group-item" href="#map (Converters)">map (Converters)</a>
23432345

23442346
<a class="list-group-item" href="#master-worker">master-worker</a>
23452347

@@ -4266,6 +4268,10 @@
42664268

42674269
<a class="list-group-item" href="#tune.memory.hot-size">tune.memory.hot-size</a>
42684270

4271+
<a class="list-group-item" href="#tune.notsent-lowat.client">tune.notsent-lowat.client</a>
4272+
4273+
<a class="list-group-item" href="#tune.notsent-lowat.server">tune.notsent-lowat.server</a>
4274+
42694275
<a class="list-group-item" href="#tune.pattern.cache-size">tune.pattern.cache-size</a>
42704276

42714277
<a class="list-group-item" href="#tune.peers.max-updates-at-once">tune.peers.max-updates-at-once</a>
@@ -4296,6 +4302,8 @@
42964302

42974303
<a class="list-group-item" href="#tune.quic.frontend.max-streams-bidi">tune.quic.frontend.max-streams-bidi</a>
42984304

4305+
<a class="list-group-item" href="#tune.quic.frontend.max-tx-mem">tune.quic.frontend.max-tx-mem</a>
4306+
42994307
<a class="list-group-item" href="#tune.quic.frontend.stream-data-ratio">tune.quic.frontend.stream-data-ratio</a>
43004308

43014309
<a class="list-group-item" href="#tune.quic.max-frame-loss">tune.quic.max-frame-loss</a>
@@ -4549,7 +4557,7 @@
45494557
You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
45504558
</p>
45514559
<p class="text-right">
4552-
<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/28</b></small>
4560+
<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/29</b></small>
45534561
</p>
45544562
</div>
45554563
<!-- /.sidebar -->
@@ -4560,7 +4568,7 @@
45604568
<div class="text-center">
45614569
<h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
45624570
<h2>Configuration Manual</h2>
4563-
<p><strong>version 3.2-dev12-29</strong></p>
4571+
<p><strong>version 3.2-dev12-50</strong></p>
45644572
<p>
45654573
2025/04/25<br>
45664574

@@ -7350,6 +7358,7 @@ <h2 id="chapter-2.9" data-target="2.9"><small><a class="small" href="#2.9">2.9.<
73507358
- <a href="#tune.quic.frontend.max-data-size">tune.quic.frontend.max-data-size</a>
73517359
- <a href="#tune.quic.frontend.max-idle-timeout">tune.quic.frontend.max-idle-timeout</a>
73527360
- <a href="#tune.quic.frontend.max-streams-bidi">tune.quic.frontend.max-streams-bidi</a>
7361+
- <a href="#tune.quic.frontend.max-tx-mem">tune.quic.frontend.max-tx-mem</a>
73537362
- <a href="#tune.quic.frontend.stream-data-ratio">tune.quic.frontend.stream-data-ratio</a>
73547363
- <a href="#tune.quic.frontend.default-max-window-size">tune.quic.frontend.default-max-window-size</a>
73557364
- <a href="#tune.quic.max-frame-loss">tune.quic.max-frame-loss</a>
@@ -9544,6 +9553,19 @@ <h2 id="chapter-3.2" data-target="3.2"><small><a class="small" href="#3.2">3.2.<
95449553
change this value, or to proceed in small increments. In order to completely
95459554
disable the per-thread CPU caches, using a very small value could work, but
95469555
it is better to use &quot;-dMno-cache&quot; on the command-line.
9556+
</pre><a class="anchor" name="tune.notsent-lowat.client"></a><a class="anchor" name="3-tune.notsent-lowat.client"></a><a class="anchor" name="3.2-tune.notsent-lowat.client"></a><a class="anchor" name="tune.notsent-lowat.client (Global parameters)"></a><a class="anchor" name="tune.notsent-lowat.client (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.notsent-lowat.client"></a><a href="#3.2-tune.notsent-lowat.client">tune.notsent-lowat.client</a></b> <span style="color: #080">&lt;size&gt;</span></div><a class="anchor" name="tune.notsent-lowat.server"></a><a class="anchor" name="3-tune.notsent-lowat.server"></a><a class="anchor" name="3.2-tune.notsent-lowat.server"></a><a class="anchor" name="tune.notsent-lowat.server (Global parameters)"></a><a class="anchor" name="tune.notsent-lowat.server (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.notsent-lowat.server"></a><a href="#3.2-tune.notsent-lowat.server">tune.notsent-lowat.server</a></b> <span style="color: #080">&lt;size&gt;</span></div><pre class="text">Adjusts the kernel's per-socket buffering so as to report that the sending
9557+
side of a socket is full once the amount of buffered data equals this value
9558+
plus the measured window size. The principle is to let the strict minimum
9559+
needed amount of bytes in socket buffers, plus a small margin corresponding
9560+
to what would be sent by the time haproxy tries to send again. Setting this
9561+
to a low value (typically around tune.bufsize) allows to significantly reduce
9562+
the memory consumption in system buffers, and reduce the application level
9563+
latency incurred by flushing buffered data. This generally represents a more
9564+
effective and more accurate setting than tune.sndbuf.client and
9565+
tune.sndbuf.client for systems supporting it. This applies per connection
9566+
(connection from a client or connection to a server depending on the setting)
9567+
and is only used by TCP connections. The default is zero, which means
9568+
unlimited. This is only available on Linux.
95479569
</pre><a class="anchor" name="tune.pattern.cache-size"></a><a class="anchor" name="3-tune.pattern.cache-size"></a><a class="anchor" name="3.2-tune.pattern.cache-size"></a><a class="anchor" name="tune.pattern.cache-size (Global parameters)"></a><a class="anchor" name="tune.pattern.cache-size (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.pattern.cache-size"></a><a href="#3.2-tune.pattern.cache-size">tune.pattern.cache-size</a></b> <span style="color: #080">&lt;number&gt;</span></div><pre class="text">Sets the size of the pattern lookup cache to &lt;number&gt; entries. This is an LRU
95489570
cache which reminds previous lookups and their results. It is used by ACLs
95499571
and maps on slow pattern lookups, namely the ones using the &quot;<a href="#sub">sub</a>&quot;, &quot;reg&quot;,
@@ -9661,7 +9683,13 @@ <h2 id="chapter-3.2" data-target="3.2"><small><a class="small" href="#3.2">3.2.<
96619683
upload throughput. It can be corrected by increasing
96629684
tune.quic.frontend.max-data-size setting.
96639685
</pre><div class="page-header"><b>See also:</b> &quot;<a href="#tune.quic.frontend.max-data-size">tune.quic.frontend.max-data-size</a>&quot;, &quot;<a href="#tune.quic.frontend.stream-data-ratio">tune.quic.frontend.stream-data-ratio</a>&quot;</div>
9664-
<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 parameters)"></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">&lt;0..100, in percent&gt;</span></div><pre class="text">This setting allows to configure the hard limit of the number of data bytes
9686+
<a class="anchor" name="tune.quic.frontend.max-tx-mem"></a><a class="anchor" name="3-tune.quic.frontend.max-tx-mem"></a><a class="anchor" name="3.2-tune.quic.frontend.max-tx-mem"></a><a class="anchor" name="tune.quic.frontend.max-tx-mem (Global parameters)"></a><a class="anchor" name="tune.quic.frontend.max-tx-mem (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.quic.frontend.max-tx-mem"></a><a href="#3.2-tune.quic.frontend.max-tx-mem">tune.quic.frontend.max-tx-mem</a></b> <span style="color: #080">&lt;size&gt;</span></div><pre class="text">Sets the maximum amount of memory usable by QUIC stack at the transport layer
9687+
for emission. This serves both as a limit of in flight bytes and multiplexer
9688+
output buffers. Note that to prevent threads contention this limit is not
9689+
strictly enforced so it can be exceeded on some occasions. Also, each
9690+
connection will always be able to use a window of at least 2 datagrams, so a
9691+
proper maxconn should be used in conjunction.
9692+
</pre><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 parameters)"></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">&lt;0..100, in percent&gt;</span></div><pre class="text">This setting allows to configure the hard limit of the number of data bytes
96659693
in flight over each stream. It is expressed as a percentage relative to
96669694
&quot;<a href="#tune.quic.frontend.max-data-size">tune.quic.frontend.max-data-size</a>&quot; setting, with the result rounded up to
96679695
bufsize.
@@ -9822,7 +9850,9 @@ <h2 id="chapter-3.2" data-target="3.2"><small><a class="small" href="#3.2">3.2.<
98229850
of received data. Lower values will significantly increase CPU usage though.
98239851
Another use case is to prevent write timeouts with extremely slow clients due
98249852
to the kernel waiting for a large part of the buffer to be read before
9825-
notifying HAProxy again.
9853+
notifying HAProxy again. See also tune.notsent-lowat.client and
9854+
tune.notsent-lowat.server for more effective settings to more finely control
9855+
memory usage and responsiveness on Linux without hurting performance.
98269856
</pre><a class="anchor" name="tune.ssl.cachesize"></a><a class="anchor" name="3-tune.ssl.cachesize"></a><a class="anchor" name="3.2-tune.ssl.cachesize"></a><a class="anchor" name="tune.ssl.cachesize (Global parameters)"></a><a class="anchor" name="tune.ssl.cachesize (Performance tuning)"></a><div class="keyword"><b><a class="anchor" name="tune.ssl.cachesize"></a><a href="#3.2-tune.ssl.cachesize">tune.ssl.cachesize</a></b> <span style="color: #080">&lt;number&gt;</span></div><pre class="text">Sets the size of the global SSL session cache, in a number of blocks. A block
98279857
is large enough to contain an encoded session without peer certificate. An
98289858
encoded session with peer certificate is stored in multiple blocks depending
@@ -10556,7 +10586,7 @@ <h2 id="chapter-3.9" data-target="3.9"><small><a class="small" href="#3.9">3.9.<
1055610586

1055710587
ring myring
1055810588
description &quot;My local buffer&quot;
10559-
format rfc3164
10589+
format rfc5424
1056010590
maxlen 1200
1056110591
size 32764
1056210592
timeout connect 5s
@@ -10922,9 +10952,11 @@ <h2 id="chapter-3.13" data-target="3.13"><small><a class="small" href="#3.13">3.
1092210952
The following keywords are usable in the ACME section:
1092310953
</pre><a class="anchor" name="account-key"></a><a class="anchor" name="3-account-key"></a><a class="anchor" name="3.13-account-key"></a><a class="anchor" name="account-key (Global parameters)"></a><a class="anchor" name="account-key (ACME)"></a><div class="keyword"><b><a class="anchor" name="account-key"></a><a href="#3.13-account-key">account-key</a></b> <span style="color: #080">&lt;filename&gt;</span></div><pre class="text">Configure the path to the account key. The key need to be generated before
1092410954
launching HAProxy. If no account keyword is used, the acme section will try
10925-
to load a filename using the section name &quot;&lt;name&gt;.account.key&quot;
10955+
to load a filename using the section name &quot;&lt;name&gt;.account.key&quot;. If the file
10956+
doesn't exist, HAProxy will generate one, using the parameters from the acme
10957+
section.
1092610958

10927-
You can generate an RSA private key with openssl:
10959+
You can also generate manually an RSA private key with openssl:
1092810960

1092910961
openssl genrsa -out account.key 2048
1093010962

@@ -10949,6 +10981,10 @@ <h2 id="chapter-3.13" data-target="3.13"><small><a class="small" href="#3.13">3.
1094910981
</div><a class="anchor" name="keytype"></a><a class="anchor" name="3-keytype"></a><a class="anchor" name="3.13-keytype"></a><a class="anchor" name="keytype (Global parameters)"></a><a class="anchor" name="keytype (ACME)"></a><div class="keyword"><b><a class="anchor" name="keytype"></a><a href="#3.13-keytype">keytype</a></b> <span style="color: #080">&lt;string&gt;</span></div><pre class="text">Configure the type of key that will be generated. Value can be either &quot;RSA&quot;
1095010982
or &quot;ECDSA&quot;. You can also configure the &quot;<span class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">curves<span class="caret"></span></a><ul class="dropdown-menu"><li class="dropdown-header">This keyword is available in sections :</li><li><a href="#curves%20%28ACME%29">ACME</a></li><li><a href="#curves%20%28Bind%20options%29">Bind options</a></li><li><a href="#curves%20%28Server%20and%20default-server%20options%29">Server and default-server options</a></li></ul></span>&quot; for ECDSA and the number of
1095110983
&quot;<a href="#bits">bits</a>&quot; for RSA. By default EC384 keys are generated.
10984+
</pre><a class="anchor" name="map"></a><a class="anchor" name="3-map"></a><a class="anchor" name="3.13-map"></a><a class="anchor" name="map (Global parameters)"></a><a class="anchor" name="map (ACME)"></a><div class="keyword"><b><a class="anchor" name="map"></a><a href="#3.13-map">map</a></b> <span style="color: #080">&lt;map&gt;</span></div><pre class="text">Configure the map which will be used to store token (key) and thumbprint
10985+
(value), which is useful to reply to a challenge when there are multiple
10986+
account used. The acme task will add entries before validating the challenge
10987+
and will remove the entries at the end of the task.
1095210988
</pre><div class="separator">
1095310989
<span class="label label-success">Example:</span>
1095410990
<pre class="prettyprint">
@@ -10959,7 +10995,7 @@ <h2 id="chapter-3.13" data-target="3.13"><small><a class="small" href="#3.13">3.
1095910995
frontend in
1096010996
bind *:80
1096110997
bind *:443 ssl
10962-
http-request return status 200 content-type text/plain lf-string &quot;%[path,field(-1,/)].${ACCOUNT_THUMBPRINT}\n&quot; if { path_beg '/.well-known/acme-challenge/' }
10998+
http-request return status 200 content-type text/plain lf-string &quot;%[path,field(-1,/)].%[path,field(-1,/),map(virt@acme)]\n&quot; if { path_beg '/.well-known/acme-challenge/' }
1096310999
ssl-f-use crt &quot;foo.example.com.pem.rsa&quot; acme LE1 domains &quot;foo.example.com.pem,bar.example.com&quot;
1096411000
ssl-f-use crt &quot;foo.example.com.pem.ecdsa&quot; acme LE2 domains &quot;foo.example.com.pem,bar.example.com&quot;
1096511001

@@ -10970,6 +11006,7 @@ <h2 id="chapter-3.13" data-target="3.13"><small><a class="small" href="#3.13">3.
1097011006
challenge HTTP-01
1097111007
keytype RSA
1097211008
bits 2048
11009+
map virt@acme
1097311010

1097411011
acme LE2
1097511012
directory https://acme-staging-v02.api.letsencrypt.org/directory
@@ -10978,6 +11015,7 @@ <h2 id="chapter-3.13" data-target="3.13"><small><a class="small" href="#3.13">3.
1097811015
challenge HTTP-01
1097911016
keytype ECDSA
1098011017
curves P-384
11018+
map virt@acme
1098111019
</code></pre>
1098211020
</div></div>
1098311021
<a class="anchor" id="4" name="4"></a>
@@ -17358,6 +17396,7 @@ <h2 id="chapter-4.2" data-target="4.2"><small><a class="small" href="#4.2">4.2.<
1735817396
<pre class="prettyprint">
1735917397
<code>frontend https
1736017398
bind :443 ssl
17399+
bind quic4@:443 ssl
1736117400
ssl-f-use crt foobar.pem.rsa sigalgs &quot;RSA-PSS+SHA256&quot;
1736217401
ssl-f-use crt test.foobar.pem
1736317402
ssl-f-use crt test2.foobar.crt key test2.foobar.key ocsp test2.foobar.ocsp ocsp-update on
@@ -25308,7 +25347,7 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2530825347
the &lt;default_value&gt;. If the &lt;default_value&gt; is not set, the converter fails
2530925348
and acts as if no input value could be fetched. If the &lt;match_type&gt; is not
2531025349
set, it defaults to &quot;<a href="#str">str</a>&quot;. Likewise, if the &lt;output_type&gt; is not set, it
25311-
defaults to &quot;<a href="#str">str</a>&quot;. For convenience, the &quot;<a href="#map">map</a>&quot; keyword is an alias for
25350+
defaults to &quot;<a href="#str">str</a>&quot;. For convenience, the &quot;<span class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">map<span class="caret"></span></a><ul class="dropdown-menu"><li class="dropdown-header">This keyword is available in sections :</li><li><a href="#map%20%28ACME%29">ACME</a></li><li><a href="#map%20%28Converters%29">Converters</a></li></ul></span>&quot; keyword is an alias for
2531225351
&quot;map_str&quot; and maps a string to another string. &lt;map_name&gt; must follow the
2531325352
format described in 2.7. about name format for maps and ACLs
2531425353

@@ -32611,7 +32650,7 @@ <h2 id="chapter-11.3" data-target="11.3"><small><a class="small" href="#11.3">11
3261132650
<br>
3261232651
<hr>
3261332652
<div class="text-right">
32614-
HAProxy 3.2-dev12-29 &ndash; Configuration Manual<br>
32653+
HAProxy 3.2-dev12-50 &ndash; Configuration Manual<br>
3261532654
<small>, 2025/04/25</small>
3261632655
</div>
3261732656
</div>

docs/dev/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 3.2-dev12-29 - Starter Guide</title>
5+
<title>HAProxy version 3.2-dev12-50 - 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>2025/04/28</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/29</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 3.2-dev12-29</strong></p>
498+
<p><strong>version 3.2-dev12-50</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 3.2-dev12-29 &ndash; Starter Guide<br>
2518+
HAProxy 3.2-dev12-50 &ndash; Starter Guide<br>
25192519
<small>, </small>
25202520
</div>
25212521
</div>

0 commit comments

Comments
 (0)