</div>
- <p>This document covers compilation and installation of the Apache HTTP Server
- on Unix and Unix-like systems only. For compiling and
- installation on Windows, see <a href="platform/windows.html">Using Apache HTTP Server with Microsoft
- Windows</a> and <a href="platform/win_compiling.html">Compiling Apache for Microsoft Windows</a>.
- For other platforms, see the <a href="platform/">platform</a> documentation.</p>
+ <p>The Apache HTTP Server is released as source code. This document
+ covers building and installing the server from source on Unix and
+ Unix-like systems. For Windows, see <a href="platform/windows.html">Using Apache HTTP Server with Microsoft
+ Windows</a> and <a href="platform/win_compiling.html">Compiling Apache httpd for Microsoft
+ Windows</a>. For other platforms, see the <a href="platform/">platform</a> documentation.</p>
- <p>Apache httpd uses <code>libtool</code> and <code>autoconf</code>
- to create a build environment that looks like many other Open Source
- projects.</p>
+ <p>If you install httpd from a distribution package (RPM, DEB, etc.),
+ configuration layout and defaults may differ from what is described here.
+ See <a href="#thirdp">third-party packages</a> below, and consult your
+ distribution's documentation for platform-specific details.</p>
<p>If you are upgrading from one minor version to the next (for
example, 2.4.66 to 2.4.67), please skip down to the <a href="#upgrading">upgrading</a> section.</p>
<h2 id="overview">Overview for the
impatient <a title="Permanent link" href="#overview" class="permalink">¶</a></h2>
- <dl>
- <dt>Installing on Fedora/CentOS/Red Hat Enterprise Linux</dt>
- <dd>
- <pre class="prettyprint lang-sh">sudo dnf install httpd
-
-# Start service
-sudo systemctl start httpd
-
-# Stop service
-sudo systemctl stop httpd
-
-# Restart service
-sudo systemctl restart httpd</pre>
-
-
- <div class="warning">See <a href="https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-apache-http-server/index.html">the
- Fedora project's documentation</a> for platform-specific notes.</div>
- </dd>
-
- <dt>Installing on Ubuntu/Debian</dt>
- <dd>
-<pre class="prettyprint lang-sh">sudo apt install apache2
-
-# Start service
-sudo systemctl start apache2
-
-# Stop service
-sudo systemctl stop apache2
-
-# Restart service
-sudo systemctl restart apache2</pre>
-
-
- <div class="warning">See <a href="https://ubuntu.com/tutorials/install-and-configure-apache">Ubuntu's documentation</a> for platform-specific notes.</div>
-
- </dd>
-
- <dt>Installing from source</dt>
- <dd>
<table>
<tr>
<p>Each section of the compilation and installation process is
described in more detail below, beginning with the requirements
for compiling and installing Apache httpd.</p>
- </dd>
- </dl>
-
- <div class="warning">Don't see your favorite platform mentioned
- here? <a href="https://httpd.apache.org/docs-project/">Come help us
- improve this doc.</a></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
(be sure the directory names do not have version numbers; for example,
the APR distribution must be under /httpd_source_tree_root/srclib/apr/) and use
<code>./configure</code>'s <code>--with-included-apr</code>
- option. On some platforms, you may have to install the
+ option. On some platforms, you may have to install the
corresponding <code>-dev</code> packages to allow httpd to build
against your installed copy of APR and APR-Util.</dd>
- <dt>Perl-Compatible Regular Expressions Library (PCRE)</dt>
- <dd>This library is required but no longer bundled with httpd.
- Download the source code from <a href="https://www.pcre.org/">https://www.pcre.org</a>,
- or install a Port or Package. If your build system can't find
- the pcre-config script installed by the PCRE build, point to it
- using the <code>--with-pcre</code> parameter. On some platforms,
+ <dt>Perl-Compatible Regular Expressions Library (PCRE2)</dt>
+ <dd>This library is required but not bundled with httpd.
+ Download the source code from <a href="https://github.com/PCRE2Project/pcre2">https://github.com/PCRE2Project/pcre2</a>
+ or install it from your system's package manager. If your build system can't find
+ the <code>pcre2-config</code> script installed by the PCRE2 build,
+ point to it using the <code>--with-pcre</code> parameter. On some platforms,
you may have to install the corresponding <code>-dev</code>
- package to allow httpd to build against your installed copy
- of PCRE.</dd>
+ package (e.g. <code>libpcre2-dev</code> or <code>pcre2-devel</code>)
+ to allow httpd to build against your installed copy of PCRE2.</dd>
<dt>Disk Space</dt>
<dd>Make sure you have at least 200 MB of temporary free disk
basic build tools such as <code>make</code>.</dd>
<dt>Accurate time keeping</dt>
- <dd>Elements of the HTTP protocol are expressed as the time of
- day. So, it's time to investigate setting some time
- synchronization facility on your system. Most modern Linux
- distributions provide <code>systemd-timesyncd</code> or
- <code>chrony</code> for this purpose. See the <a href="https://www.ntp.org">NTP
- homepage</a> for more details about NTP software and public
- time servers.</dd>
+ <dd>HTTP protocol headers use timestamps, so your system clock
+ must be accurate. Most Linux distributions enable
+ <code>systemd-timesyncd</code> or <code>chrony</code> by
+ default. Verify that time synchronization is active on your
+ system before running a production server.</dd>
<dt><a href="https://www.perl.org/">Perl 5</a>
[OPTIONAL]</dt>
<div class="section">
<h2 id="download">Download <a title="Permanent link" href="#download" class="permalink">¶</a></h2>
- <p>If you wish to build from source, start by downloading
- the source tarball from the <a href="https://httpd.apache.org/download.cgi">Apache HTTP Server
- download site</a>. The build process (described below)
- allows you to customize your server to suit your
- needs.</p>
+ <p>Download the source tarball from the <a href="https://httpd.apache.org/download.cgi">Apache HTTP Server
+ download site</a>.</p>
<p>After downloading, it is important to verify that you have a
complete and unmodified version of the Apache HTTP Server. This
can be accomplished by testing the downloaded tarball against the
- PGP signature. Details on how to do this are available on the
+ PGP signature. Details on how to do this are available on the
<a href="https://httpd.apache.org/dev/verification.html">verification
page</a>.</p>
<div class="section">
<h2 id="configure">Configuring the source tree <a title="Permanent link" href="#configure" class="permalink">¶</a></h2>
- <p>The next step is to configure the Apache source tree for your
+ <p>The next step is to configure the httpd source tree for your
particular platform and personal requirements. This is done using
the script <code class="program"><a href="./programs/configure.html">configure</a></code> included in
the root directory of the distribution. (Developers downloading
- an unreleased version of the Apache source tree will need to have
+ an unreleased version of the httpd source tree will need to have
<code>autoconf</code> and <code>libtool</code> installed and will
need to run <code>buildconf</code> before proceeding with the next
steps. This is not necessary for official releases.)</p>
and command line options.</p>
<p>The most important option is the location <code>--prefix</code>
- where Apache is to be installed later, because Apache has to be
- configured for this location to work correctly. More fine-tuned
+ where httpd is to be installed later, because httpd has to be
+ configured for this location to work correctly. More fine-tuned
control of the location of files is possible with additional <a href="programs/configure.html#installationdirectories">configure
options</a>.</p>
<p>Also at this point, you can specify which <a href="programs/configure.html#optionalfeatures">features</a> you
- want included in Apache by enabling and disabling <a href="mod/">modules</a>. Apache comes with a wide range of modules
- included by default. They will be compiled as
+ want included in httpd by enabling and disabling <a href="mod/">modules</a>. httpd comes with a wide range of modules
+ included by default. They will be compiled as
<a href="dso.html">shared objects (DSOs)</a> which can be loaded
or unloaded at runtime.
You can also choose to compile modules statically by using the option
<code>--enable-<var>module</var></code> option, where
<var>module</var> is the name of the module with the
<code>mod_</code> string removed and with any underscore converted
- to a dash. Similarly, you can disable modules with the
- <code>--disable-<var>module</var></code> option. Be careful when
+ to a dash. Similarly, you can disable modules with the
+ <code>--disable-<var>module</var></code> option. Be careful when
using these options, since <code class="program"><a href="./programs/configure.html">configure</a></code> cannot warn you
if the module you specify does not exist; it will ignore the option.</p>
<p>In addition, it is sometimes necessary to provide the
<code class="program"><a href="./programs/configure.html">configure</a></code> script with extra information about the
- location of your compiler, libraries, or header files. This is
+ location of your compiler, libraries, or header files. This is
done by passing either environment variables or command line
- options to <code class="program"><a href="./programs/configure.html">configure</a></code>. For more information, see the
+ options to <code class="program"><a href="./programs/configure.html">configure</a></code>. For more information, see the
<code class="program"><a href="./programs/configure.html">configure</a></code> manual page. Or invoke
<code class="program"><a href="./programs/configure.html">configure</a></code> using the <code>--help</code> option.</p>
<p>For a short impression of what possibilities you have, here
- is a typical example which compiles Apache for the installation
+ is a typical example which compiles httpd for the installation
tree <code>/sw/pkg/apache</code> with a particular compiler and flags
plus the two additional modules <code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code> and
<code class="module"><a href="./mod/mod_lua.html">mod_lua</a></code>:</p>
<div class="section">
<h2 id="compile">Build <a title="Permanent link" href="#compile" class="permalink">¶</a></h2>
- <p>Now you can build the various parts which form the Apache
+ <p>Now you can build the various parts which form the httpd
package by running:</p>
-<div class="example"><p><code>$ make</code></p></div>
+<div class="example"><pre class="prettyprint lang-sh">$ make</pre>
+</div>
<p>Please be patient here, since a base configuration takes
several minutes to compile and the time will vary widely
installation <em>PREFIX</em> (see <code>--prefix</code> option
above) by running:</p>
-<div class="example"><p><code>$ make install</code></p></div>
+<div class="example"><pre class="prettyprint lang-sh">$ make install</pre>
+</div>
<p>This step will typically require root privileges, since
<em>PREFIX</em> is usually a directory with restricted write
<div class="section">
<h2 id="customize">Customize <a title="Permanent link" href="#customize" class="permalink">¶</a></h2>
- <p>Next, you can customize your Apache HTTP server by editing
+ <p>Next, you can customize your Apache HTTP Server by editing
the <a href="configuring.html">configuration files</a> under
<code><em>PREFIX</em>/conf/</code>.</p>
-<div class="example"><p><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code></p></div>
+<div class="example"><pre class="prettyprint lang-sh">$ vi <em>PREFIX</em>/conf/httpd.conf</pre>
+</div>
- <p>Have a look at the Apache manual under
+ <p>Have a look at the httpd manual under
<code><em>PREFIX</em>/docs/manual/</code> or consult <a href="https://httpd.apache.org/docs/trunk/">https://httpd.apache.org/docs/trunk/</a> for the most recent
version of this manual and a complete reference of available <a href="mod/directives.html">configuration directives</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="test">Test <a title="Permanent link" href="#test" class="permalink">¶</a></h2>
- <p>Now you can <a href="invoking.html">start</a> your Apache
- HTTP server by immediately running:</p>
+ <p>Now you can <a href="invoking.html">start</a> your Apache HTTP Server by immediately running:</p>
-<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl -k start</code></p></div>
+<div class="example"><pre class="prettyprint lang-sh">$ <em>PREFIX</em>/bin/apachectl -k start</pre>
+</div>
<p>You should then be able to request your first document
via the URL <code>http://localhost/</code>. The web page you see is located
Then <a href="stopping.html">stop</a> the server again by
running:</p>
-<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl -k stop</code></p></div>
+<div class="example"><pre class="prettyprint lang-sh">$ <em>PREFIX</em>/bin/apachectl -k stop</pre>
+</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="upgrading">Upgrading <a title="Permanent link" href="#upgrading" class="permalink">¶</a></h2>
<p>The first step in upgrading is to read the release announcement
and the file <code>CHANGES</code> in the source distribution to
- find any changes that may affect your site. When changing between
+ find any changes that may affect your site. When changing between
major releases (for example, from 2.4 to 2.6),
there will likely be major differences in the compile-time and
- run-time configuration that will require manual adjustments. All
+ run-time configuration that will require manual adjustments. All
modules will also need to be upgraded to accommodate changes in the
module API.</p>
<p>Upgrading from one minor version to the next (for example, from
- 2.4.66 to 2.4.67) is easier. The <code>make install</code>
+ 2.4.66 to 2.4.67) is easier. The <code>make install</code>
process will not overwrite any of your existing documents, log
- files, or configuration files. In addition, the developers make
+ files, or configuration files. In addition, the developers make
every effort to avoid incompatible changes in the
<code class="program"><a href="./programs/configure.html">configure</a></code> options, run-time configuration, or the
- module API between minor versions. In most cases you should be able to
+ module API between minor versions. In most cases you should be able to
use an identical <code class="program"><a href="./programs/configure.html">configure</a></code> command line, an identical
configuration file, and all of your modules should continue to
work.</p>
<p>To upgrade across minor versions, start by finding the file
<code>config.nice</code> in the <code>build</code> directory of
your installed server or at the root of the source tree for your
- old install. This will contain the exact
+ old install. This will contain the exact
<code class="program"><a href="./programs/configure.html">configure</a></code> command line that you used to
- configure the source tree. Then to upgrade from one version to
+ configure the source tree. Then to upgrade from one version to
the next, you need only copy the <code>config.nice</code> file to
the source tree of the new version, edit it to make any desired
changes, and then run:</p>
</div>
<div class="warning">You should always test any new version in your
- environment before putting it into production. For example, you
+ environment before putting it into production. For example, you
can install and run the new version along side the old one by
using a different <code>--prefix</code> and a
different port (by adjusting the <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> directive) to test for any
which will be appended to your original <code class="program"><a href="./programs/configure.html">configure</a></code>
options:</p>
- <div class="example"><p><code>
- $ ./config.nice --prefix=/home/test/apache --with-port=90
- </code></p></div>
+ <div class="example"><pre class="prettyprint lang-sh">$ ./config.nice --prefix=/home/test/apache --with-port=90</pre>
+</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="thirdp">Third-party packages <a title="Permanent link" href="#thirdp" class="permalink">¶</a></h2>
- <p>A large number of third parties provide their own packaged
- distributions of the Apache HTTP Server for installation on
- particular platforms. This includes the various Linux distributions,
- various
- <a href="https://httpd.apache.org/docs/trunk/en/platform/windows.html">Windows</a>
- packages, macOS, and many more.</p>
+ <p>Many operating systems ship pre-built Apache httpd packages.
+ These are convenient for getting started quickly, but they often
+ differ from a source build in configuration file layout,
+ compiled-in modules, and default paths. The documentation on this
+ site describes the server as built from source; if you are using a
+ platform package, consult your distribution's documentation for
+ platform-specific details.</p>
+
+ <p>Some common examples:</p>
+
+ <dl>
+ <dt>Fedora / CentOS / Red Hat Enterprise Linux</dt>
+ <dd>
+ <pre class="prettyprint lang-sh">sudo dnf install httpd
+sudo systemctl start httpd</pre>
+
+ <p>See <a href="https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-apache-http-server/index.html">the
+ Fedora project's documentation</a> for configuration layout and
+ platform-specific notes.</p>
+ </dd>
+
+ <dt>Ubuntu / Debian</dt>
+ <dd>
+<pre class="prettyprint lang-sh">sudo apt install apache2
+sudo systemctl start apache2</pre>
+
+ <p>See <a href="https://ubuntu.com/tutorials/install-and-configure-apache">Ubuntu's
+ documentation</a> for configuration layout and
+ platform-specific notes.</p>
+ </dd>
+ </dl>
<p>Our software license not only permits, but encourages, this kind
of redistribution. However, it does result in a situation where the
configuration layout and defaults on your installation of the server
- may differ from what is stated in the documentation. While
- unfortunate, this situation is not likely to change any time
- soon.</p>
-
- <p>A <a href="https://cwiki.apache.org/confluence/display/httpd/DistrosDefaultLayout">description
- of these third-party distributions</a> is in the HTTP
- Server wiki. However, you will need to familiarize
- yourself with your particular platform's package management and
- installation procedures.</p>
+ may differ from what is stated in the documentation. A <a href="https://cwiki.apache.org/confluence/display/httpd/DistrosDefaultLayout">description
+ of these third-party distributions</a> is available in the HTTP
+ Server wiki.</p>
+
+ <div class="warning">Don't see your favorite platform mentioned
+ here? <a href="https://httpd.apache.org/docs-project/">Come help us
+ improve this doc.</a></div>
</div></div>
<div class="bottomlang">
des projets Open Source .</p>
<p>Si vous effectuez une mise à jour depuis une version mineure vers
- la suivante (par exemple, 2.4.8 à 2.4.9), veuillez passer à la section
+ la suivante (par exemple, 2.4.66 à 2.4.67), veuillez passer à la section
<a href="#upgrading">mise à jour</a>.</p>
</div>
<dl>
<dt>Installation sous Fedora/CentOS/Red Hat Enterprise Linux</dt>
<dd>
- <pre class="prettyprint lang-">sudo dnf install httpd
-sudo service httpd start</pre>
+ <pre class="prettyprint lang-sh">sudo dnf install httpd
+# Démarrage du service
+sudo systemctl start httpd
- <div class="warning">Les anciennes versions de ces distributions utilisent
- <code>yum</code> au lieu de <code>dnf</code>. Voir la <a href="https://fedoraproject.org/wiki/Apache_HTTP_Server">documentation du
- projet Fedora</a> pour des informations spécifiques à cette plateforme.</div>
+# Arrêt du service
+sudo systemctl stop httpd
+
+# Redémarrage du service
+sudo systemctl restart httpd</pre>
+
+
+ <div class="warning">Voir la <a href="https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-apache-http-server/index.html">documentation
+ du projet Fedora</a> pour des informations spécifiques à cette plateforme.</div>
</dd>
<dt>Installation sous Ubuntu/Debian</dt>
<dd>
-<pre class="prettyprint lang-">sudo apt install apache2
-sudo service apache2 start</pre>
+<pre class="prettyprint lang-sh">sudo apt install apache2
+
+# Démarrage du service
+sudo systemctl start apache2
+# Arrêt du service
+sudo systemctl stop apache2
- <div class="warning">Voir la <a href="https://help.ubuntu.com/lts/serverguide/httpd.html">documentation
- Ubuntu</a> pour des informations spécifiques à cette plateforme.</div>
+# Redémarrage du service
+sudo systemctl restart apache2</pre>
+
+
+ <div class="warning">Voir la <a href="https://ubuntu.com/tutorials/install-and-configure-apache">documentation
+ d’Ubuntu</a> pour des informations spécifiques à cette plateforme.</div>
</dd>
<tr>
<td><a href="#download">Téléchargement</a></td>
- <td>Téléchargez la dernière version depuis <a href="http://httpd.apache.org/download.cgi#apache24">http://httpd.apache.org/download.cgi</a>
- </td>
+ <td>Téléchargez la dernière version depuis <a href="https://httpd.apache.org/download.cgi#apache24">https://httpd.apache.org/download.cgi</a>
+ </td>
</tr>
<tr>
<td><a href="#extract">Extraction</a></td>
- <td><code>$ gzip -d httpd-<em>NN</em>.tar.gz<br>
- $ tar xvf httpd-<em>NN</em>.tar<br>
- $ cd httpd-<em>NN</em></code></td>
+ <td><pre class="prettyprint lang-sh">$ tar xzf httpd-NN.tar.gz
+$ cd httpd-NN</pre>
+</td>
</tr>
<tr>
</dl>
<div class="warning">L'installation sous votre plateforme favorite n'est pas
- traitée ici ? N'hésitez pas à nous <a href="http://httpd.apache.org/docs-project/">aider à compléter cette
+ traitée ici ? N'hésitez pas à nous <a href="https://httpd.apache.org/docs-project/">aider à compléter cette
documentation</a> en nous faisant profiter de votre expérience.</div>
<div class="section">
<h2 id="requirements">Prérequis <a title="Lien permanent" href="#requirements" class="permalink">¶</a></h2>
- <p>Les prérequis pour la construction d'Apache httpd sont les suivants:</p>
+ <p>Les prérequis pour la construction et l’exécution d'Apache httpd sont les
+ suivants:</p>
<dl>
<dt>APR et APR-Util</dt>
<dd>APR et APR-Util doivent être déjà installés sur votre système.
Si ce n'est pas le cas, ou si vous préférez ne pas utiliser les
versions fournies par le système, téléchargez les dernières
- versions d'APR et APR-Util depuis <a href="http://apr.apache.org/">Apache APR</a>, décompressez-les
+ versions d'APR et APR-Util depuis <a href="https://apr.apache.org/">Apache APR</a>, décompressez-les
respectivement dans <code>/racine_sources_httpd/srclib/apr</code> et
<code>/racine_sources_httpd/srclib/apr-util</code> (les noms des répertoires ne
doivent pas comporter de numéros de versions ; par exemple, la
<dt>Bibliothèque d'expressions rationnelles compatibles Perl
(PCRE)</dt>
<dd>Cette bibliothèque est nécessaire mais n'est plus fournie avec la
- distribution de httpd. Téléchargez le code source depuis <a href="http://www.pcre.org/">http://www.pcre.org</a> ou installez
+ distribution de httpd. Téléchargez le code source depuis <a href="https://www.pcre.org/">https://www.pcre.org</a> ou installez
un portage du paquet. Si votre suite de compilation ne trouve pas
le script pcre-config installé au cours du processus de
construction de PCRE, indiquez son chemin via l'option
installée de PCRE.</dd>
<dt>Espace disque</dt>
- <dd>Assurez-vous d'avoir au moins 50 Mo d'espace disque disponible
+ <dd>Assurez-vous d'avoir au moins 200 Mo d'espace disque disponible
temporaire. Après l'installation le serveur occupe
- approximativement 10 Mo d'espace disque. L'espace disque réellement
+ approximativement 50 Mo d'espace disque. L'espace disque réellement
nécessaire va varier considérablement en fonction de vos options
de configuration, de la présence éventuelle de
modules tiers, et bien entendu de la taille de votre site web et
des sites que vous hébergez sur votre serveur.</dd>
<dt>Compilateur ANSI-C et système de construction</dt>
- <dd>Vous devez disposer d'un compilateur ANSI-C. Le compilateur <a href="http://gcc.gnu.org/">GNU C (GCC)</a> de la <a href="http://www.gnu.org/">Free Software Foundation (FSF)</a>
+ <dd>Vous devez disposer d'un compilateur ANSI-C. Le compilateur <a href="https://gcc.gnu.org/">GNU C (GCC)</a> de la <a href="https://www.gnu.org/">Free Software Foundation (FSF)</a>
est recommandé. Si vous ne possédez pas GCC,
assurez-vous au moins que votre compilateur soit compatible ANSI.
En outre, votre <code>PATH</code> doit contenir
les outils de construction de base tels que <code>make</code>.</dd>
<dt>Connaissance de l'heure exacte</dt>
- <dd>Les éléments du protocole HTTP font référence à l'heure du jour.
- Par conséquent, il est nécessaire d'équiper votre système d'un
- dispositif de synchronisation du temps. Les programmes
- <code>ntpdate</code> ou <code>xntpd</code>, basés sur le protocole NTP,
- sont couramment utilisés à cet effet.
- Voir la <a href="http://www.ntp.org">page d'accueil de NTP</a>
- pour plus de détails à propos du logiciel NTP et des serveurs
+ <dd>Les éléments du protocole HTTP font référence à l'heure du jour. Par
+ conséquent, il est nécessaire d'équiper votre système d'un dispositif de
+ synchronisation du temps. À cet effet, la plupart des distributions
+ modernes de Linux fournissent <code>systemd-timesyncd</code> ou
+ <code>chrony</code>. Voir la <a href="https://www.ntp.org">page d'accueil
+ de NTP</a> pour plus de détails à propos du logiciel NTP et des serveurs
de temps publics.</dd>
- <dt><a href="http://www.perl.org/">Perl 5</a>
+ <dt><a href="https://www.perl.org/">Perl 5</a>
[OPTIONNEL]</dt>
- <dd>L'interpréteur Perl 5 (les versions 5.003 ou supérieures conviennent)
- est nécessaire pour l'exécution de certains scripts comme
- <code class="program"><a href="./programs/apxs.html">apxs</a></code> ou <code class="program"><a href="./programs/dbmmanage.html">dbmmanage</a></code>
- (qui sont écrits en Perl).
- Si le script <code class="program"><a href="./programs/configure.html">configure</a></code> ne trouve pas d'interpréteur
- Perl 5, vous ne pourrez pas utiliser les scripts qui en ont besoin.
- Bien entendu, vous pourrez tout de même construire et utiliser
- Apache httpd.</dd>
+ <dd>L'interpréteur Perl 5 est nécessaire pour l'exécution de certains
+ scripts comme <code class="program"><a href="./programs/apxs.html">apxs</a></code> ou <code class="program"><a href="./programs/dbmmanage.html">dbmmanage</a></code> (qui
+ sont écrits en Perl). Si le script <code class="program"><a href="./programs/configure.html">configure</a></code> ne trouve
+ pas d'interpréteur Perl 5, vous ne pourrez pas utiliser les scripts qui en
+ ont besoin. Bien entendu, vous pourrez tout de même construire et
+ utiliser Apache httpd.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="download">Téléchargement <a title="Lien permanent" href="#download" class="permalink">¶</a></h2>
- <p>Le serveur HTTP Apache peut être téléchargé à partir du
- <a href="http://httpd.apache.org/download.cgi">site de téléchargement
- du serveur HTTP Apache</a>, qui fournit la liste de nombreux miroirs.
- Il sera plus commode à la plupart des utilisateurs d'Apache sur les
- systèmes UNIX ou similaires de télécharger et de compiler
- la version sources. Le processus de construction (décrit ci-dessous) est
- simple, et vous permet de personnaliser votre serveur selon vos besoins.
- En outre, les versions binaires sont souvent plus anciennes que les
- dernières versions sources. Si vous téléchargez une version binaire,
- suivez les instructions décrites dans le fichier
- <code>INSTALL.bindist</code> inclus dans la distribution.</p>
-
- <p>Après le téléchargement, il est important de vérifier que vous
- disposez d'une version complète et non modifiée du serveur HTTP Apache.
- Vous pouvez le faire en testant l'archive téléchargée à l'aide de
- la signature PGP. Vous trouverez les détails de cette opération sur la <a href="http://httpd.apache.org/download.cgi#verify">page de téléchargement</a> ainsi qu'un exemple précis décrivant <a href="http://httpd.apache.org/dev/verification.html">l'utilisation de
- PGP</a>.</p>
+ <p>Si vous voulez construire httpd depuis le code source, commencez par
+ télécharger l’archive tar du code source depuis le <a href="https://httpd.apache.org/download.cgi">site de téléchargement du
+ serveur HTTP Apache</a>. Le processus de construction (décrit ci-après)
+ permet de personnaliser le serveur pour qu’il corresponde à vos besoins.</p>
+
+ <p>Après le téléchargement, il est important de vérifier que vous disposez
+ d'une version complète et non modifiée du serveur HTTP Apache. Vous pouvez
+ le faire en testant l'archive téléchargée à l'aide de la signature PGP. Vous
+ trouverez les détails de cette opération sur la <a href="https://httpd.apache.org/dev/verification.html">page de
+ vérification</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="extract">Extraction <a title="Lien permanent" href="#extract" class="permalink">¶</a></h2>
- <p>L'extraction des sources depuis l'archive du serveur HTTP Apache consiste
- simplement à décompresser et à désarchiver cette dernière :</p>
+ <p>Extraire les sources depuis l'archive du serveur HTTP Apache :</p>
-<div class="example"><pre class="prettyprint lang-sh">$ gzip -d httpd-<em>NN</em>.tar.gz
-$ tar xvf httpd-<em>NN</em>.tar</pre>
+<div class="example"><pre class="prettyprint lang-sh">$ tar xzf httpd-<em>NN</em>.tar.gz</pre>
</div>
<p>Ceci créera, dans le répertoire courant, un nouveau répertoire
ce qui n'est pas nécessaire pour les versions officielles).</p>
<p>Pour configurer l'arborescence des sources avec les valeurs par défaut
- pour toutes les options, entrez simplement <code>./configure</code>.
+ pour toutes les options, saisissez <code>./configure</code>.
Pour modifier les valeurs des options, <code class="program"><a href="./programs/configure.html">configure</a></code>
accepte toute une variété de variables et
d'options de ligne de commande.</p>
vous pouvez désactiver des modules à l'aide de l'option
<code>--disable-<var>module</var></code>. Faites très attention
en utilisant ces options, car <code class="program"><a href="./programs/configure.html">configure</a></code> n'est pas en
- mesure de vous avertir si le module que vous avez spécifié n'existe pas;
- il ignorera tout simplement l'option.</p>
+ mesure de vous avertir si le module que vous avez spécifié n'existe pas ;
+ il ignorera l'option.</p>
<p>En outre, vous devrez peut-être fournir au script
<code class="program"><a href="./programs/configure.html">configure</a></code> des informations supplémentaires sur
<h2 id="compile">Construction <a title="Lien permanent" href="#compile" class="permalink">¶</a></h2>
<p>Vous pouvez maintenant construire les différents éléments qui
- composent le paquet Apache en lançant tout simplement la commande :</p>
+ composent le paquet Apache en lançant :</p>
<div class="example"><p><code>$ make</code></p></div>
<p>Consultez le manuel d'Apache situé dans
<code><em>PREFIX</em>/docs/manual/</code> ou
- <a href="http://httpd.apache.org/docs/trunk/">http://httpd.apache.org/docs/trunk/</a> pour la version la plus
+ <a href="https://httpd.apache.org/docs/trunk/">https://httpd.apache.org/docs/trunk/</a> pour la version la plus
récente de ce manuel et la liste complète des <a href="mod/directives.html">directives de configuration</a> disponibles.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="upgrading">Mise à jour <a title="Lien permanent" href="#upgrading" class="permalink">¶</a></h2>
<p>La première étape d'une mise à jour consiste à lire l'annonce de la
- sortie de la nouvelle version et le fichier <code>CHANGES</code>
- dans la distribution des sources afin de déceler toutes les modifications
- qui pourraient affecter votre site. Lors d'un changement majeur de version
- (par exemple de 2.0 à 2.2 ou de 2.2 à 2.4),
- il y aura certainement des différences importantes quant à la
- configuration de la compilation et de l'exécution qui nécessiteront des
- ajustements manuels. Tous les
- modules devront aussi être mis à jour pour qu'ils s'adaptent aux
- changements de l'API des modules.</p>
+ sortie de la nouvelle version et le fichier <code>CHANGES</code> dans la
+ distribution des sources afin de déceler toutes les modifications qui
+ pourraient affecter votre site. Lors d'un changement majeur de version (par
+ exemple de 2.4 à 2.6), il y aura certainement des différences importantes
+ quant à la configuration de la compilation et de l'exécution qui
+ nécessiteront des ajustements manuels. Tous les modules devront aussi être
+ mis à jour pour qu'ils s'adaptent aux changements de l'API des modules.</p>
<p>La mise à jour d'une version mineure à la suivante (par exemple, de
- 2.2.55 à 2.2.57) est plus aisée. Le processus <code>make install</code>
+ 2.4.66 à 2.4.67) est plus aisée. Le processus <code>make install</code>
n'écrasera aucun de vos documents existants, fichiers de log,
ou fichiers de configuration. De plus, les développeurs font tout
leur possible pour éviter les changements entraînant une
<div class="section">
<h2 id="thirdp">Paquets tiers <a title="Lien permanent" href="#thirdp" class="permalink">¶</a></h2>
- <p>De nombreux tiers fournissent leur propre distribution du
- serveur HTTP Apache à installer sur une plate-forme particulière. On
- peut citer les différentes distributions Linux, divers
- paquets tiers Windows, Mac OS X, Solaris et de nombreux autres.</p>
+ <p>De nombreux tiers fournissent leur propre distribution du serveur HTTP
+ Apache à installer sur une plate-forme particulière. On peut citer les
+ différentes distributions Linux, divers paquets <a href="https://httpd.apache.org/docs/trunk/en/platform/windows.html">Windows</a>,
+ macOS, et de nombreux autres.</p>
<p>Notre license logicielle non seulement permet, mais aussi
encourage ce genre de redistribution. Cependant, ceci conduit à une
situation n'est pas appelée à évoluer de sitôt.</p>
<p>Une <a href="https://cwiki.apache.org/confluence/display/httpd/DistrosDefaultLayout">description
- de ces distributions tierces</a> est maintenue dans le wiki du
- serveur HTTP, et doit en refléter l'état actuel. Vous devrez
- cependant vous familiariser par vous-même avec la gestion du paquet
+ de ces distributions tierces</a> est dans le wiki du serveur HTTP. Vous
+ devrez cependant vous familiariser par vous-même avec la gestion du paquet
de votre plate-forme particulière et les procédures d'installation.</p>
</div></div>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.de.xsl"?>
-<!-- English Revision: 239255:1934683 (outdated) -->
+<!-- English Revision: 239255:1935202 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1934683 -->
+<!-- English Revision: 1934683:1935202 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 527129:1934683 (outdated) -->
+<!-- English Revision: 527129:1935202 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1934683 (outdated) -->
+<!-- English Revision: 105989:1935202 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.pt-br.xsl"?>
-<!-- English Revision: 1933438:1934683 (outdated) -->
+<!-- English Revision: 1933438:1935202 (outdated) -->
<!-- Portuguese(BR) translation: leonardolara --><!-- Reviewed by: leonardolara -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1296735:1934683 (outdated) -->
+<!-- English Revision: 1296735:1935202 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<modulefile>mod_xml2enc.xml.fr</modulefile>
<modulefile>mpm_common.xml.fr</modulefile>
<modulefile>event.xml.fr</modulefile>
- <modulefile>motorz.xml</modulefile>
+ <modulefile>motorz.xml.fr</modulefile>
<modulefile>mpm_netware.xml.fr</modulefile>
<modulefile>mpmt_os2.xml.fr</modulefile>
<modulefile>prefork.xml.fr</modulefile>
<p>Ce module MPM a été conçu à l'origine pour résoudre le "problème keep
alive" de HTTP. Lorsqu'un client a effectué une première requête, il peut
- garder la connexion ouverte et envoyer les requêtes suivante en utilisant le
+ garder la connexion ouverte et envoyer les requêtes suivantes en utilisant le
même socket, ce qui diminue considérablement la charge qui aurait été
induite par la création de nouvelles connexions TCP. Cependant, le
fonctionnement du serveur HTTP Apache impose de réserver un couple processus
modules multi-processus (MPM)</dd>
<dt><a href="event.html">event</a></dt><dd>Une variante du MPM <code class="module"><a href="../mod/worker.html">worker</a></code> conçue pour ne
mobiliser des threads que pour les connexions en cours de traitement</dd>
-<dt><a href="motorz.html">motorz</a></dt><dd>A lean, fast, self-contained event-driven Multi-Processing Module
-built on the APR pollset and thread pool especially suited as a reverse proxy</dd>
+<dt><a href="motorz.html">motorz</a></dt><dd>Un MPM (Multi-Processing Module) événementiel léger, rapide et
+autonome basé sur l'ensemble de requêtes et le pool de threads APR,
+particulièrement adapté comme mandataire inverse</dd>
<dt><a href="mpm_netware.html">mpm_netware</a></dt><dd>Module multi-processus implémentant un serveur web basé
exclusivement sur les threads et optimisé pour Novell
NetWare</dd>
<a href="../es/mod/mod_allowhandlers.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/mod/mod_allowhandlers.html" title="Français"> fr </a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Facilite la définition de la liste des gestionnaires HTTP
qui peuvent être utilisés pour le serveur</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
<variants>
<variant>en</variant>
<variant outdated="yes">es</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
</variants>
</metafile>
<a href="../fr/mod/mod_auth_digest.html" title="Français"> fr </a> |
<a href="../ko/mod/mod_auth_digest.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Authentification utilisateur utilisant les condensés
MD5</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="authdigestnccheck">Directive <span id="AuthDigestNcCheck">AuthDigestNcCheck</span> <a title="Lien permanent" href="#authdigestnccheck" class="permalink">¶</a></h2>
<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive la vérification du nombre d'envois du
-nombre à valeur unique (nonce) par le serveur</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive la vérification du compteur d'envois du
+nombre à valeur unique (nonce) par le client</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDigestNcCheck On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthDigestNcCheck Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_digest</td></tr>
</table>
- <div class="note">
- Non encore implémenté.
- </div>
-
+ <p>La directive AuthDigestNcCheck permet d'activer ou de désactiver
+ la vérification du compteur d'envois du nombre à valeur unique (nonce)
+ par le client. Le compteur d'envois est un compteur séquentiel que le client
+ incrémente à chaque requête en utilisant le même nombre à valeur unique.
+ Cette vérification permet de détecter les attaques par rejeu.</p>
+
+ <p>Cette fonctionnalité nécessite la prise en charge de la mémoire partagée
+ sur la plateforme. Si cette directive est définie à <code>On</code> alors
+ que la mémoire partagée n’est pas disponible, le serveur renverra une erreur
+ au démarrage.</p>
+
+ <p>Bien qu’il soit recommandé de le faire du point de vue de la sécurité,
+ activer cette directive a des implications en matière de performance :
+ toutes les requêtes comportant un en-tête
+ <code>Authorization</code> doivent être sérialisées au sein d’une section
+ critique pour comparer de manière sure les valeurs du compteur d’envois du
+ nombre à valeur unique. Sur les serveurs à fort trafic, cela peut ne pas être
+ négligeable.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
<variant outdated="yes">ko</variant>
</variants>
</metafile>
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_brotli.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_brotli.html" title="Français"> fr </a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Compression du contenu via Brotli avant sa livraison au client</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>brotli_module</td></tr>
<p>Si vous voulez restreindre la compression à certains types MIME
particuliers, vous pouvez utiliser la directive <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>. Dans l'exemple
suivant, l'activation de la compression est restreinte aux fichiers html
- de la documentation d'Apache :</p>
+ de la documentation d'Apache httpd :</p>
<pre class="prettyprint lang-config"><Directory "/your-server-root/manual">
AddOutputFilterByType BROTLI_COMPRESS text/html
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr>
</table>
<p>La directive <code class="directive">BrotliCompressionMaxInputBlock</code> permet
- de spécifier la taille maximale du bloc de données en entrée entre 16 et 24,
- sachant que plus cette taille sera grande, plus grande sera la quantité de
- mémoire consommée.</p>
+ de spécifier la taille maximale du bloc de données en entrée sous la forme
+ de 2 élevé à une puissance égale à <var>value</var>. Cette dernière doit
+ être comprise entre 16 et 24, ce qui représente des blocs de 64 Ko à 16 Mo.
+ Des blocs de taille plus grande peuvent améliorer la compression, mais
+ nécessitent davantage de mémoire. Lorsque cette directive n’est pas définie,
+ la taille de bloc est automatiquement calculée en fonction de la valeur de
+ qualité définie.
+ </p>
+
+ <div class="example"><h3>Blocs en entrée de taille définie à 1 Mo</h3><pre class="prettyprint lang-config"># 2^20 = blocs de 1 Mo
+BrotliCompressionMaxInputBlock 20</pre>
+</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<p>La directive <code class="directive">BrotliCompressionQuality</code> permet de
spécifier la qualité de la compression (une valeur entre 0 et
11). Les valeurs les plus hautes correspondent à une compression de
- meilleure qualité mais plus lente.
+ meilleure qualité mais plus lente. La valeur par défaut 5 est un bon
+ compromis pour du contenu dynamique.
</p>
+ <div class="example"><h3>Compression rapide pour du contenu dynamique</h3><pre class="prettyprint lang-config"># La valeur de qualité 4 est à peu près équivalente à gzip niveau 6
+BrotliCompressionQuality 4</pre>
+</div>
+
+ <div class="example"><h3>Compression maximale pour les ressources statiques</h3><pre class="prettyprint lang-config"># Meilleur taux de compression mais très lent — ne convient qu’à la mise en
+# cache
+BrotliCompressionQuality 11</pre>
+</div>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="brotlicompressionwindow">Directive <span id="BrotliCompressionWindow">BrotliCompressionWindow</span> <a title="Lien permanent" href="#brotlicompressionwindow" class="permalink">¶</a></h2>
</table>
<p>La directive <code class="directive">BrotliCompressionWindow</code> permet de
spécifier la taille de la fenêtre de compression glissante brotli (une
- valeur comprise entre 10 et 24). Une taille de fenêtre plus grande peut
- améliorer la qualité de la compression mais consomme d'avantage de mémoire.</p>
+ valeur comprise entre 10 et 24, représentant une fenêtre de
+ 2^<var>value</var> octets. Par exemple, 18 (la valeur par défaut) donne une
+ fenêtre de 256 Ko, alors que 24 en donne une de 16 Mo. Une taille de fenêtre
+ plus grande peut améliorer la qualité de la compression mais consomme
+ d'avantage de mémoire.</p>
+
+ <div class="example"><h3>Fenêtre modérée pour une utilisation raisonnable de mémoire</h3><pre class="prettyprint lang-config"># fenêtre de 1 Mo (2^20 octets)
+BrotliCompressionWindow 20</pre>
+</div>
+
+ <div class="example"><h3>Fenêtre maximale pour la meilleure compression</h3><pre class="prettyprint lang-config"># fenêtre de 16 Mo (2^24 octets) — nécessite une quantité de mémoire
+# significative pour chaque connexion
+BrotliCompressionWindow 24</pre>
+</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre le taux de compression dans une note à des fins de
journalisation</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>None</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr>
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
</variants>
</metafile>
If there is an error with an MD it will be shown here as well. This let's
you assess problems without digging through your server logs.
</p><p>
- There is also a new 'md-status' handler available to give you the MD information
- from 'server-status' in JSON format. You configure it as
+ There is also a new '<code>md-status</code>' handler available to give you the MD information
+ from '<code>server-status</code>' in JSON format. You configure it as
</p>
<pre class="prettyprint lang-config"><Location "/md-status">
SetHandler md-status
+ Require host example.com
</Location></pre>
<p>
- on your server. As with 'server-status' you will want to add
- authorization for this.
+ on your server. As with '<code>server-status</code>' you <strong>must</strong> protect
+ the <code>md-status</code> output from public view using authorization restrictions (such as <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>).
</p><p>
If you just want to check the JSON status of a specific domain, simply append
that to your status url:
</MDomain></pre>
<p>
- and use the 'server-status' and/or <code class="directive"><a href="#mdmessagecmd">MDMessageCmd</a></code> to see how it operates. You will
+ and use the '<code>server-status</code>' and/or <code class="directive"><a href="#mdmessagecmd">MDMessageCmd</a></code> to see how it operates. You will
see if Stapling information is there, how long it is valid, from where it came and
when it will be refreshed.
</p><p>
</p><p>
If you configure more than one URL, each one is tried in a round-robin
fashion after a number of failures. You can configure how quickly or
- delayed that happens via the <code class="directive">MDRetryDelay</code> and
- <code class="directive">MDRetryFailover</code> directives. The default setting
+ delayed that happens via the <code class="directive"><a href="#mdretrydelay">MDRetryDelay</a></code> and
+ <code class="directive"><a href="#mdretryfailover">MDRetryFailover</a></code> directives. The default setting
makes a failover after about half a day of trying.
</p><p>
All other settings apply to each of these URLs. It is therefore
not possible to have two with different
- <code class="directive">MDExternalAccountBinding</code>s, for example.
+ <code class="directive"><a href="#mdexternalaccountbinding">MDExternalAccountBinding</a></code>s, for example.
</p><p>
For testing, CAs commonly offer a second service URL.
The 'test' service does not give certificates valid in a browser,
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_md</td></tr>
</table>
<p>
- This is part of the 'server-status' HTML user interface and has nothing to
+ This is part of the '<code>server-status</code>' HTML user interface and has nothing to
do with the core functioning itself. It defines the link offered on that
page for easy checking of a certificate monitor. The SHA256 fingerprint
of the certificate is appended to the configured url.
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.4.58 and later</td></tr>
</table>
<p>
- Set the way MDChallengeDns01 command is invoked, e.g the number and
- types of arguments. See <code class="directive"><a href="#mdchallengedns01">MDChallengeDns01</a></code>
+ Set the way <code class="directive"><a href="#mdchallengedns01">MDChallengeDns01</a></code>
+ command is invoked, e.g the number and types of arguments.
+ See <code class="directive"><a href="#mdchallengedns01">MDChallengeDns01</a></code>
for the differences.
+ </p><p>
This setting is global and cannot be varied per domain.
</p>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.4.58 and later</td></tr>
</table>
<p>
- The mode `all` is the behavior as in all previous versions. Both ServerName
- and ServerAlias are inspected to find the MDomain matching a VirtualHost.
+ The mode `all` is the behavior as in all previous versions. Both
+ <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>
+ and <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> are inspected
+ to find the <code class="directive"><a href="#mdomain">MDomain</a></code> matching a VirtualHost.
This automatically detects coverage, even when you only have added
one of the names to an MDomain.
</p><p>
<p>
This about a non-standard ACME extension by Let's Encrypt.
</p><p>
- Lets Encrypt supports Certificate Profiles in their CA. This,
+ Let's Encrypt supports Certificate Profiles in their CA. This,
among some other details, let's you select the lifetime of the
certificates you get. The "classic" profile is the default and
will keep the 90 days, the "tlsserver" profile is also 90 days
with a max of 25 Subject Alternative Names. The "shortlived"
profile will issue certificates with only 6 days of validity.
</p><p>
- If you do not change your mod_md configuration, you will
+ If you do not change your <code class="module"><a href="../mod/mod_md.html">mod_md</a></code> configuration, you will
continue to get the 90 days certificates. Should you believe
that a shorter lifetime is beneficial for you (and take the
risk that the renewal time is way shorter),
-+ you can configure the profile to use via 'MDProfile shortlived'.
+ you can configure the profile to use via 'MDProfile shortlived'.
</p><p>
The profile names are defined by the CA. If a profile you
configure is not available, no profile will be used and
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_md</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.4.64 and later</td></tr>
</table>
<p>
Controls if a <code class="directive"><a href="#mdprofile">MDProfile</a></code>
<p>
En-/Disable certificate renewals triggered via the ACME ARI
extension (rfc9773). These renewals happen *in addition* to
- the mechanism controlled by <code class="directive">MDRenewWindow</code>.
+ the mechanism controlled by <code class="directive"><a href="#mdrenewwindow">MDRenewWindow</a></code>.
</p><p>
ACME ARI allows an ACME CA to somewhat shape incoming renewal
traffic. More importantly though, it can inform clients of
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_md</td></tr>
</table>
<p>
- If the validity of the certificate falls below duration, mod_md
+ If the validity of the certificate falls below duration, <code class="module"><a href="../mod/mod_md.html">mod_md</a></code>
will get a new signed certificate.
</p><p>
Normally, certificates are valid for around 90 days and mod_md will renew
<p>
The number of consecutive errors on renewing a certificate before
another CA is selected. This only applies to configurations that
- have more than one <code class="directive">MDCertificateAuthority</code>
+ have more than one <code class="directive"><a href="#mdcertificateauthority">MDCertificateAuthority</a></code>
specified.
</p>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="mdserverstatus"><span id="MDServerStatus">MDServerStatus</span> Directive <a title="Permanent link" href="#mdserverstatus" class="permalink">¶</a></h2>
<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Control if Managed Domain information is added to server-status.</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MDServerStatus on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MDServerStatus on</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MDServerStatus off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_md</td></tr>
</table>
<p>
- Apaches 'server-status' handler allows you configure a resource to monitor
- what is going on. This includes now a section listing all Managed Domains
- with the DNS names, renewal status, lifetimes and main properties.
+ If enabled, adds a section to the
+ <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> '<code>server-status</code>' handler
+ output which lists all Managed Domains with the DNS
+ names, renewal status, lifetimes and main properties.
</p><p>
- You can switch that off using this directive.
+ As with '<code>md-status</code>', the '<code>server-status</code>' output
+ <strong>must</strong> be protected from public view
+ using appropriate authorization restrictions.
</p>
</div>
</table>
<p>
Enable this to use a lock file on server startup when
- <code class="directive">MDStoreDir</code> is synchronized with the server
+ <code class="directive"><a href="#mdstoredir">MDStoreDir</a></code> is synchronized with the server
configuration and renewed certificates are activated.
</p><p>
Locking is intended for setups in a cluster that have a shared
- file system for MDStoreDir. It will protect the activation of
+ file system for <code class="directive"><a href="#mdstoredir">MDStoreDir</a></code>.
+ It will protect the activation of
renewed certificates when cluster nodes are restarted/reloaded
at the same time. Under the condition that the shared file
system does support file locking.
window left. With the default, this mean 9 days for certificates from
Let's Encrypt.
</p><p>
- It also applies to Managed Domains with static certificate files (
- see <code class="directive"><a href="#mdcertificatefile">MDCertificateFile</a></code>).
+ It also applies to Managed Domains with static certificate files (see
+ <code class="directive"><a href="#mdcertificatefile">MDCertificateFile</a></code>).
</p>
</div>
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_md.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_md.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Gestion des domaines au sein des serveurs virtuels et obtention
de certificats via le protocole ACME
</td></tr>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<!-- English Revision: 1933741 -->
+<!-- English Revision: 1933741:1935184 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
</variants>
</metafile>
<a href="../fr/mod/mod_mime.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_mime.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Associe les extensions des fichiers demandés avec l'action
déclenchée par ces fichiers et avec leur contenu (type MIME, langage,
jeu de caractère et codage)</td></tr>
<FilesMatch "^[^.]+$">
ForceType text/plain
AddDefaultCharset UTF-8
- AddDefaultCharset UTF-8
</FilesMatch></pre>
</div>
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
<variant outdated="yes">ja</variant>
</variants>
</metafile>
--- /dev/null
+# GENERATED FROM XML -- DO NOT EDIT
+
+URI: mod_proxy_beacon.html.en.utf8
+Content-Language: en
+Content-type: text/html; charset=UTF-8
--- /dev/null
+<!DOCTYPE html SYSTEM "about:legacy-compat">
+<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="width=device-width, initial-scale=1" name="viewport">
+<!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ -->
+<title>mod_proxy_beacon - Apache HTTP Server Version 2.5</title>
+<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
+<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
+<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
+<script src="../style/scripts/prettify.min.js">
+</script>
+
+<link href="../images/favicon.png" rel="shortcut icon"></head>
+<body>
+<div id="page-header">
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
+<p class="apache">Apache HTTP Server Version 2.5</p>
+<img alt="" src="../images/feather.png"></div>
+<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
+<div id="path">
+<a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">HTTP Server</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
+<div id="page-content">
+<div id="preamble"><h1>Apache Module mod_proxy_beacon</h1>
+<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
+<div class="toplang">
+<p><span>Available Languages: </span><a href="../en/mod/mod_proxy_beacon.html" title="English"> en </a></p>
+</div>
+<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Dynamic Balancer membership where backends announce themselves
+to the reverse proxy over unicast UDP datagrams</td></tr>
+<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>proxy_beacon_module</td></tr>
+<tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_proxy_beacon.c</td></tr>
+<tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.5 and later</td></tr></table>
+<h3>Summary</h3>
+
+ <p>This module lets backend servers <em>announce themselves</em> to a
+ front-end reverse proxy, which then adds each announcing backend as a live
+ member (worker) of a <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> balancer. When a
+ backend stops announcing, the proxy takes it out of rotation. This provides
+ self-registering, self-healing balancer membership without editing the proxy
+ configuration or driving the <code>balancer-manager</code> by hand.</p>
+
+ <p>Communication uses plain <strong>unicast UDP</strong> datagrams (not
+ multicast, which is filtered on most networks and does not traverse the
+ public Internet). The data flows from backend to proxy:</p>
+
+ <ul>
+ <li>The reverse proxy binds a UDP socket and <em>receives</em> on a
+ stable address (<code class="directive">ProxyBeaconListen</code>).</li>
+ <li>Each backend periodically <em>sends</em> a short announcement datagram
+ to the proxy (<code class="directive">ProxyBeaconAddress</code>), advertising
+ its own routable URL
+ (<code class="directive">ProxyBeaconAdvertise</code>).</li>
+ </ul>
+
+ <p>Datagrams are fire-and-forget: a lost announcement is recovered by the
+ next periodic one, and reordering is rejected by a per-backend timestamp
+ check, so no connection, reconnect, or framing layer is needed.</p>
+
+ <p>On the proxy, <code class="directive">ProxyBeaconBalancer</code> names the balancer
+ that announced backends are added to. Membership changes are applied using
+ the same internal mechanism as the <code>balancer-manager</code> web
+ interface, so a backend added this way behaves exactly like a statically
+ configured or manually added
+ <code class="directive"><a href="../mod/mod_proxy.html#balancermember">BalancerMember</a></code>, and is visible and
+ editable in the <code>balancer-manager</code>.</p>
+
+ <p>This module <em>requires</em> the service of
+ <code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code> and <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code>. The
+ background work (listening, publishing, adding and evicting members) runs in
+ a single <code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code> child process, so it is not available
+ under the <code>prefork</code> MPM behaviour where that singleton cannot
+ run.</p>
+
+<div class="warning"><h3>Authentication</h3>
+ <p>Any host that can reach the proxy's receive port could otherwise announce
+ an arbitrary backend URL and cause the proxy to send client traffic to it
+ (and a UDP source address is trivially spoofable). Set
+ <code class="directive">ProxyBeaconSecret</code> to the same value on the proxy and on
+ every backend so that announcements are authenticated with a keyed
+ message-authentication code (MAC) and a timestamp. When a secret is
+ configured the proxy drops any announcement that is not validly signed and
+ recent. If no secret is configured the channel is <strong>unauthenticated</strong>
+ and the proxy logs a warning at startup.</p>
+</div>
+
+<div class="note"><h3>Confidentiality</h3>
+ <p>Announcements are authenticated but not encrypted; the payload is
+ operational metadata (backend URLs), not secret data. Transport
+ confidentiality (e.g. DTLS) is not currently provided and would be a separate
+ future layer.</p>
+</div>
+
+</div>
+<div id="quickview"><h3>Topics</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif"> <a href="#examples">Usage example</a></li>
+</ul><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeaconaddress">ProxyBeaconAddress</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeaconadvertise">ProxyBeaconAdvertise</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeaconbalancer">ProxyBeaconBalancer</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeaconinterval">ProxyBeaconInterval</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeaconlisten">ProxyBeaconListen</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeaconmaxskew">ProxyBeaconMaxSkew</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeaconsecret">ProxyBeaconSecret</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#proxybeacontimeout">ProxyBeaconTimeout</a></li>
+</ul>
+<h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_proxy_beacon">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_proxy_beacon">Report a bug</a></li></ul><h3>See also</h3>
+<ul class="seealso">
+<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
+<li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></li>
+<li><code class="module"><a href="../mod/mod_proxy_hcheck.html">mod_proxy_hcheck</a></code></li>
+<li><code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code></li>
+</ul></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="section">
+<h2 id="examples">Usage example <a title="Permanent link" href="#examples" class="permalink">¶</a></h2>
+
+
+ <p>The following pair of configurations sets up a self-registering balancer.
+ The backends require no knowledge of each other and the proxy needs no
+ pre-declared <code class="directive"><a href="../mod/mod_proxy.html#balancermember">BalancerMember</a></code>
+ entries — only an empty balancer with room to grow.</p>
+
+ <p>On the <strong>reverse proxy</strong>:</p>
+ <pre class="prettyprint lang-config"># Receive backend announcements on the cluster network interface (UDP).
+ProxyBeaconListen 0.0.0.0:5555
+ProxyBeaconSecret "a-long-random-shared-cluster-secret"
+ProxyBeaconBalancer cluster
+
+# A backend is dropped from rotation if it does not announce for 30 seconds.
+ProxyBeaconTimeout 30
+
+# An initially-empty balancer with spare slots for the dynamic members.
+<Proxy balancer://cluster>
+ ProxySet growth=16
+</Proxy>
+ProxyPass "/" "balancer://cluster/"
+ProxyPassReverse "/" "balancer://cluster/"</pre>
+
+
+ <p>On each <strong>backend</strong> server:</p>
+ <pre class="prettyprint lang-config"># Announce this backend's routable origin to the proxy every 10 seconds (UDP).
+ProxyBeaconAddress proxy.example.com:5555
+ProxyBeaconAdvertise http://10.0.0.5:8080
+ProxyBeaconSecret "a-long-random-shared-cluster-secret"
+ProxyBeaconInterval 10</pre>
+
+
+ <p>When a backend starts it begins sending announcements. The proxy
+ verifies each announcement against the shared secret, adds
+ <code>http://10.0.0.5:8080</code> as a member of
+ <code>balancer://cluster</code>, and enables it. If that backend later stops
+ announcing for longer than <code class="directive">ProxyBeaconTimeout</code>, the proxy
+ disables the member (taking it out of rotation); a subsequent announcement
+ re-enables it.</p>
+
+ <div class="note">
+ <p>A backend added at runtime occupies one of the balancer's growth slots
+ for the lifetime of the server process; it is disabled rather than removed
+ when it stops announcing, matching the behaviour of the
+ <code>balancer-manager</code> (which can add, but not remove, workers at
+ runtime). Size <code>growth</code> for the maximum number of backends you
+ expect to register.</p>
+ </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeaconaddress"><span id="ProxyBeaconAddress">ProxyBeaconAddress</span> Directive <a title="Permanent link" href="#proxybeaconaddress" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Address of the reverse proxy to which a backend sends its
+announcements</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconAddress <em>address:port</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconAddress</code> directive marks a server as an
+ announcement <em>sender</em> (a backend). It sends UDP datagrams to the
+ proxy's <code class="directive">ProxyBeaconListen</code> address given by
+ <em>address:port</em>, e.g. <code>proxy.example.com:5555</code> (a leading
+ scheme such as <code>tcp://</code> is accepted and ignored). Because UDP is
+ connectionless, a backend may be started before the proxy is available:
+ early datagrams are simply dropped and the next interval retries.</p>
+
+ <p>Use <code class="directive">ProxyBeaconAdvertise</code> to specify the routable URL
+ the backend announces. <code class="directive">ProxyBeaconAddress</code> and
+ <code class="directive">ProxyBeaconListen</code> are mutually exclusive on the same
+ server.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeaconadvertise"><span id="ProxyBeaconAdvertise">ProxyBeaconAdvertise</span> Directive <a title="Permanent link" href="#proxybeaconadvertise" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The routable URL a backend announces to the reverse proxy</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconAdvertise <em>url</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconAdvertise</code> directive sets the backend's
+ own reachable origin (for example <code>http://10.0.0.5:8080</code>) that the
+ proxy will add as a <code class="directive"><a href="../mod/mod_proxy.html#balancermember">BalancerMember</a></code>.
+ It must be a full <code>scheme://host[:port]</code> URL that the proxy can
+ reach — not the local listen address — and is validated when the
+ configuration is parsed.</p>
+
+ <p>This directive is used on a backend, alongside
+ <code class="directive">ProxyBeaconAddress</code>. If it is omitted, the backend still
+ sends a heartbeat but advertises no URL, so the proxy logs the
+ announcement without adding a member.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeaconbalancer"><span id="ProxyBeaconBalancer">ProxyBeaconBalancer</span> Directive <a title="Permanent link" href="#proxybeaconbalancer" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Name of the balancer that announced backends are added to</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconBalancer <em>name</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconBalancer</code> directive names the balancer,
+ on the reverse proxy, into which announced backends are inserted as members.
+ Give the bare balancer name (for example <code>cluster</code> for
+ <code>balancer://cluster</code>); a leading <code>balancer://</code> is
+ accepted and stripped.</p>
+
+ <p>The named balancer must exist and have spare capacity. Declare it with a
+ <code class="directive"><a href="../mod/mod_proxy.html#<proxy>"><Proxy></a></code> block and a
+ <code>growth</code> setting (or rely on
+ <code class="directive"><a href="../mod/mod_proxy.html#balancergrowth">BalancerGrowth</a></code>) so there are free
+ slots for the dynamically added members. This directive is used together
+ with <code class="directive">ProxyBeaconListen</code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeaconinterval"><span id="ProxyBeaconInterval">ProxyBeaconInterval</span> Directive <a title="Permanent link" href="#proxybeaconinterval" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How often a backend publishes its announcement</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconInterval <em>interval</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyBeaconInterval 5</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconInterval</code> directive sets how frequently
+ a backend (a <code class="directive">ProxyBeaconAddress</code> server) publishes its
+ announcement. It uses the
+ <a href="directive-dict.html#Syntax">time-interval</a> directive syntax and
+ defaults to seconds; the default is 5 seconds.</p>
+
+ <p>The interval must be meaningfully smaller than the proxy's
+ <code class="directive">ProxyBeaconTimeout</code>, so that the occasional lost or
+ delayed announcement does not cause a healthy backend to be evicted.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeaconlisten"><span id="ProxyBeaconListen">ProxyBeaconListen</span> Directive <a title="Permanent link" href="#proxybeaconlisten" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Address on which the reverse proxy receives backend
+beacons</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconListen [<em>address</em>][:<em>port</em>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconListen</code> directive marks a server as
+ the beacon <em>receiver</em> (the reverse proxy). It binds a UDP socket to
+ the given address, e.g. <code>0.0.0.0:5555</code> to receive on all
+ interfaces. A leading scheme (such as <code>tcp://</code>) is accepted and
+ ignored.</p>
+
+ <p>The address and port are both optional and, when omitted, are inherited
+ from this server's own address and port (its <code class="directive"><a href="../mod/core.html#listen">Listen</a></code>/<code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>). With no argument at all, the beacon
+ listener binds the server's own address and port; given just an address it
+ inherits the port, and so on. Because UDP and TCP are independent port
+ spaces, binding the beacon socket to the server's port does <em>not</em>
+ collide with the server's TCP listener — letting the beacon channel
+ share the service endpoint, which also identifies the proxy to backends by
+ its real address. (The listener binds in an unprivileged child, so a
+ privileged port such as 80 or 443 cannot be shared this way; use the
+ server's port only when it is non-privileged.)</p>
+
+ <p>Backends send to this address via
+ <code class="directive">ProxyBeaconAddress</code>. The directive should be used
+ together with <code class="directive">ProxyBeaconBalancer</code>; without it,
+ announcements are received and logged but no members are added.
+ <code class="directive">ProxyBeaconListen</code> and
+ <code class="directive">ProxyBeaconAddress</code> are mutually exclusive on the same
+ server.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeaconmaxskew"><span id="ProxyBeaconMaxSkew">ProxyBeaconMaxSkew</span> Directive <a title="Permanent link" href="#proxybeaconmaxskew" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum allowed age of a signed announcement</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconMaxSkew <em>interval</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconMaxSkew</code> directive sets the anti-replay
+ window used when <code class="directive">ProxyBeaconSecret</code> is configured: the
+ proxy rejects any announcement whose signed timestamp differs from the
+ current time by more than this amount, in either direction. It uses the
+ <a href="directive-dict.html#Syntax">time-interval</a> directive syntax and
+ defaults to seconds.</p>
+
+ <p>If unset, the default is 30 seconds. A larger window tolerates greater
+ clock skew between hosts; a smaller window bounds the freshness check. Note
+ that the per-backend strictly-increasing-timestamp check (see
+ <code class="directive">ProxyBeaconSecret</code>) blocks replays regardless of this
+ window. This directive is used on the proxy.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeaconsecret"><span id="ProxyBeaconSecret">ProxyBeaconSecret</span> Directive <a title="Permanent link" href="#proxybeaconsecret" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Pre-shared secret used to authenticate announcements</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconSecret <em>secret</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconSecret</code> directive sets a pre-shared
+ cluster secret. It must be configured with the <em>same</em> value on the
+ reverse proxy and on every backend. The backend (sender) signs each
+ announcement with a keyed message-authentication code (a SipHash MAC) derived
+ from the secret, together with a timestamp; the proxy (receiver) recomputes the MAC and
+ checks the timestamp, dropping any announcement that is forged, tampered
+ with, or replayed. Replayed messages are caught two ways: a freshness window
+ (<code class="directive">ProxyBeaconMaxSkew</code>) rejects old timestamps, and a
+ per-backend check rejects any announcement whose timestamp does not strictly
+ advance, so a captured-and-resent message (for example, one replayed to keep
+ a dead backend from being evicted) is dropped.</p>
+
+ <p>If <code class="directive">ProxyBeaconSecret</code> is set on the proxy, every
+ announcement must carry a valid, recent MAC or it is rejected. If the
+ secrets on the proxy and a backend differ, that backend's announcements are
+ silently rejected (and logged), which appears as the backend never joining
+ the balancer.</p>
+
+ <p>If no secret is configured the channel is unauthenticated and the proxy
+ emits a warning when it starts listening. Because the secret is stored in
+ the configuration file, restrict that file's permissions as you would for a
+ private key.</p>
+
+ <div class="note"><h3>Clock synchronisation</h3>
+ <p>The timestamp-based replay protection compares the announcement's time
+ against the proxy's clock, so the proxy and backends must have reasonably
+ synchronised clocks (for example via NTP). See
+ <code class="directive">ProxyBeaconMaxSkew</code>.</p>
+ </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="proxybeacontimeout"><span id="ProxyBeaconTimeout">ProxyBeaconTimeout</span> Directive <a title="Permanent link" href="#proxybeacontimeout" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How long the proxy waits, without an announcement, before a backend
+is taken out of rotation</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBeaconTimeout <em>interval</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyBeaconTimeout 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</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_beacon</td></tr>
+</table>
+ <p>The <code class="directive">ProxyBeaconTimeout</code> directive sets how long the
+ reverse proxy will wait for an announcement from a backend before disabling
+ that backend's balancer member (taking it out of rotation). A later
+ announcement from the same backend re-enables it. It uses the
+ <a href="directive-dict.html#Syntax">time-interval</a> directive syntax and
+ defaults to seconds.</p>
+
+ <p>The default, <code>0</code>, disables eviction entirely: backends are
+ added when they announce but are never automatically removed. Set this to a
+ small multiple of the backends' <code class="directive">ProxyBeaconInterval</code> to
+ enable self-healing membership. This directive is used on the proxy.</p>
+
+</div>
+</div>
+<div class="bottomlang">
+<p><span>Available Languages: </span><a href="../en/mod/mod_proxy_beacon.html" title="English"> en </a></p>
+</div><div id="footer">
+<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+ prettyPrint();
+}
+var langToggle = document.querySelector('.lang-toggle');
+var topLang = document.querySelector('.toplang');
+if (langToggle && topLang) {
+ langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
+}
+var qv = document.getElementById('quickview');
+if (qv) {
+ document.body.appendChild(qv);
+ var qvBtn = document.createElement('button');
+ qvBtn.className = 'qv-toggle';
+ qvBtn.setAttribute('aria-label', 'Toggle page navigation');
+ qvBtn.innerHTML = '☰';
+ document.body.appendChild(qvBtn);
+ qvBtn.addEventListener('click', function() {
+ var isOpen = qv.classList.toggle('open');
+ if (isOpen) {
+ qv.style.top = window.scrollY + 10 + 'px';
+ }
+ });
+ window.addEventListener('scroll', function() { qv.classList.remove('open'); });
+}
+//--><!]]></script>
+</body></html>
\ No newline at end of file
section of the mod_rewrite introduction.</p>
<p>The <a id="rhs" name="rhs"><em>Substitution</em></a> of a
- rewrite rule is the string that replaces the original URL-path that
- was matched by <em>Pattern</em>. The <em>Substitution</em> may
+ rewrite rule is the string that replaces the URL-path (see
+ <a href="#what_is_matched">"What is matched?"</a> above)
+ when the rule's conditions are met. The <em>Substitution</em> may
be a:</p>
<dl>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1934137:1934605 (outdated) -->
+<!-- English Revision: 1934137:1935194 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
URI: motorz.html.en.utf8
Content-Language: en
Content-type: text/html; charset=UTF-8
+
+URI: motorz.html.fr.utf8
+Content-Language: fr
+Content-type: text/html; charset=UTF-8
<div id="preamble"><h1>Apache MPM motorz</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
-<p><span>Available Languages: </span><a href="../en/mod/motorz.html" title="English"> en </a></p>
+<p><span>Available Languages: </span><a href="../en/mod/motorz.html" title="English"> en </a> |
+<a href="../fr/mod/motorz.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>A lean, fast, self-contained event-driven Multi-Processing Module
built on the APR pollset and thread pool especially suited as a reverse proxy</td></tr>
</div>
</div>
<div class="bottomlang">
-<p><span>Available Languages: </span><a href="../en/mod/motorz.html" title="English"> en </a></p>
+<p><span>Available Languages: </span><a href="../en/mod/motorz.html" title="English"> en </a> |
+<a href="../fr/mod/motorz.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
--- /dev/null
+<!DOCTYPE html SYSTEM "about:legacy-compat">
+<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="width=device-width, initial-scale=1" name="viewport">
+<!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ -->
+<title>motorz - Serveur HTTP Apache Version 2.5</title>
+<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
+<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
+<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
+<script src="../style/scripts/prettify.min.js">
+</script>
+
+<link href="../images/favicon.png" rel="shortcut icon"></head>
+<body>
+<div id="page-header">
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
+<p class="apache">Serveur HTTP Apache Version 2.5</p>
+<img alt="" src="../images/feather.png"></div>
+<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
+<div id="path">
+<a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">Serveur HTTP</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
+<div id="page-content">
+<div id="preamble"><h1>Apache MPM motorz</h1>
+<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
+<div class="toplang">
+<p><span>Langues Disponibles: </span><a href="../en/mod/motorz.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../fr/mod/motorz.html" title="Français"> fr </a></p>
+</div>
+<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Un MPM (Multi-Processing Module) événementiel léger, rapide et
+autonome basé sur l'ensemble de requêtes et le pool de threads APR,
+particulièrement adapté comme mandataire inverse</td></tr>
+<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
+<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>mpm_motorz_module</td></tr>
+<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>motorz.c</td></tr></table>
+<h3>Sommaire</h3>
+
+ <p>Le MPM <code class="module"><a href="../mod/motorz.html">motorz</a></code> est une implémentation évènementielle
+ asynchrone. Il combine un ensemble fixe de processus enfants de style prefork
+ avec un cœur construit sur l’ensemble de requêtes d’<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>
+ et un jeu de threads partagés. Chaque processus enfant exécute un ou
+ plusieurs threads <dfn>sondeurs</dfn> dédiés qui surveillent les sockets et
+ les compteurs de délai tout en répartissant les évènements d’entrée/sortie prêts
+ et les compteurs de délai expirés parmi un jeu de threads de travail. Les
+ threads de travail ne sondent jamais ; ils ne font que traiter les
+ connexions/requêtes qui leur sont envoyées.</p>
+
+ <p>Le but est de concevoir un MPM rapide, efficace, autonome et compact qui
+ fonctionne sur les plateformes Unix modernes en s’appuyant le plus possible
+ sur APR, tout en prenant en charge la gestion des connexions asynchrones
+ nécessaire à l’efficacité des connexions persistantes et de HTTP/2.</p>
+
+ <p>Pour utiliser le MPM <code class="module"><a href="../mod/motorz.html">motorz</a></code>, ajoutez
+ <code>--with-mpm=motorz</code> aux arguments du script
+ <code class="program"><a href="../programs/configure.html">configure</a></code> lors de la construction de
+ <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou construisez le en tant que module chargeable
+ avec <code>--enable-mpms-shared=motorz</code>.</p>
+
+</div>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif"> <a href="#how-it-works">Comment cela fonctionne-t-il</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#async-connections">Gestion des connexions asynchrones</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#admission-control">Contrôle d’admission</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#relationship">Liens de parenté avec les autres MPMs</a></li>
+</ul><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mod_unixd.html#group">Group</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#listen">Listen</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#maxmemfree">MaxMemFree</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#pidfile">PidFile</a></li>
+<li><img alt="" src="../images/down.gif"> <a href="#pollersperchild">PollersPerChild</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#startservers">StartServers</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#threadlimit">ThreadLimit</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li>
+<li><img alt="" src="../images/right.gif"> <a href="mod_unixd.html#user">User</a></li>
+</ul>
+<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=motorz">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=motorz">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
+<ul class="seealso">
+<li><a href="event.html">Le MPM event</a></li>
+<li><a href="worker.html">Le MPM worker</a></li>
+<li><a href="prefork.html">Le MPM prefork</a></li>
+<li><a href="../bind.html">Définir les adresses et ports qu’utilise le
+serveur HTTP Apache</a></li>
+</ul></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="section">
+<h2 id="how-it-works">Comment cela fonctionne-t-il <a title="Lien permanent" href="#how-it-works" class="permalink">¶</a></h2>
+ <p><code class="module"><a href="../mod/motorz.html">motorz</a></code> utilise prefork comme cadre pour la gestion des
+ processus et un cœur à base d’évènements pour la gestion des connexions. Un
+ seul processus de contrôle (le parent) lance un nombre fixe de processus
+ enfants, ce nombre étant défini par la directive <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>. À la différence des MPM
+ <code class="module"><a href="../mod/worker.html">worker</a></code> et <code class="module"><a href="../mod/event.html">event</a></code>, le nombre de processus
+ enfants ne varie pas avec la charge : <code class="module"><a href="../mod/motorz.html">motorz</a></code> maintient un
+ jeu de processus statique en les remplaçant nombre pour nombre lorsqu’ils
+ quittent. Le parallélisme de traitement au sein d’un hôte est mis en œuvre
+ en ajoutant des threads de travail (<code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>) et, lorsque le cheminement
+ du processus de sondage/répartition constitue un goulot d’étranglement, des
+ threads sondeurs (<code class="directive">PollersPerChild</code>), au lieu de lancer
+ davantage de processus.</p>
+
+ <p>Chaque processus enfant exécute :</p>
+ <ul>
+ <li><strong>Un ou plusieurs threads sondeurs.</strong> Chaque sondeur
+ possède ses propres domaine de sondage, sonnerie de chronomètre (avec un
+ mutex de protection) et liste de recyclage du jeu de transactions non
+ bloquante, de sorte que les sondeurs n’interfèrent pas les uns avec les
+ autres. Un thread sondeur sonde, répartit les évènements d’entrée/sortie
+ prêts et les délais expirés au sein du jeu de threads de travail, et (en
+ ce qui concerne le thread sondeur qui possède le socket d’écoute)
+ accepte de nouvelles connexions. Le nombre de threads sondeurs est
+ contrôlé par la directive <code class="directive">PollersPerChild</code>.</li>
+
+ <li><strong>Un jeu de threads de travail partagé</strong> (<code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>) qui gère la connexion
+ proprement dite et traite les requêtes qui lui sont envoyées. Les
+ threads de travail ne sondent jamais.</li>
+
+ <li><strong>Un superviseur</strong> (le thread principal de l’enfant)
+ qui surveille <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> et la
+ "pipe-of-death / generation", enjoint les threads sondeurs de ralentir
+ et les rejoint lorsqu’ils quittent.</li>
+ </ul>
+
+ <p>Une connexion est attribuée à un thread sondeur au moment de
+ l'acceptation (round-robin) et le reste pendant toute sa durée de vie : elle
+ réinitialise et fait passer à l’état expiré le domaine de sondage et la
+ sonnerie du chronomètre de ce thread sondeur. Utiliser plusieurs threads
+ sondeurs augmente le plafond de débit par rapport à celui d’un sondage par
+ thread unique ; ainsi l’acceptation, la répartition des évènements et
+ l’expiration du délai sont réglées par
+ <code class="directive">PollersPerChild</code> au lieu d’être sérialisées sur un
+ seul thread.</p>
+
+ <p>Alors que le processus parent est en général démarré en tant que
+ <code>root</code> sous Unix de façon à se lier au port 80, les processus
+ enfants et les threads sont lancés par le serveur sous un utilisateur moins
+ privilégié. Les directives <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> et
+ <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code> permettent de définir les
+ privilèges des processus enfants du serveur HTTP Apache. Les processus enfants
+ doivent pouvoir lire tout le contenu destiné à être servi, mais cela mis à
+ part, doivent posséder le moins de privilèges possible.</p>
+
+ <p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> permet de contrôler
+ la fréquence à laquelle le serveur recycle les processus en retirant les
+ anciens et en en lançant de nouveaux.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="section">
+<h2 id="async-connections">Gestion des connexions asynchrones <a title="Lien permanent" href="#async-connections" class="permalink">¶</a></h2>
+ <p><code class="module"><a href="../mod/motorz.html">motorz</a></code> se définit lui-même comme un MPM asynchrone.
+ Lorsqu’un thread de travail termine la phase active d’une connexion (par
+ exemple, une connexion persistante HTTP entre les requêtes ou une connexion
+ attendant une entrée/sortie), il confie le socket à son thread sondeur au
+ lieu de maintenir un thread de travail inactif. Le thread sondeur attend le
+ prochain évènement sur ce socket (dans les limites du délai défini par la
+ directive <code class="directive"><a href="../mod/mpm_common.html#timeout">Timeout</a></code>) et n’attribue
+ la connexion à un thread de travail que s’il y a quelque chose à faire. Cela
+ libère les threads de travail des connexions persistantes inactives et
+ permet une gestion efficace de HTTP/2 où la connexion principale est reprise
+ par le MPM entre les requêtes.</p>
+
+ <p>La fermeture avec délai (lingering close) n’est, elle non plus, pas
+ bloquante : plutôt que de bloquer un thread de travail pendant la durée du
+ délai de fermeture, le socket en cours de vidage est confié à la boucle de
+ sondage avec un délai d’inaction limité ; ainsi, le thread de travail est
+ replacé dans le pool immédiatement.</p>
+
+ <p>Les modules qui acceptent une connexion totalement asynchrone (la
+ suspendant et la réactivant plus tard) sont pris en charge ; une connexion
+ suspendue est parquée et réarmée sur son propre thread sondeur lorsqu’elle
+ est réactivée.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="section">
+<h2 id="admission-control">Contrôle d’admission <a title="Lien permanent" href="#admission-control" class="permalink">¶</a></h2>
+ <p>Pour qu’un processus enfant reste fiable en cas de surcharge,
+ <code class="module"><a href="../mod/motorz.html">motorz</a></code> applique une pression en retour (backpressure) à
+ l’écouteur. Lorsque le pool de threads de travail sature, le thread sondeur
+ qui possède les sockets d’écoute les enlève de son domaine de sondage et
+ arrête d’accepter ; il les réajoute lorsque la liste de demandes se
+ vide. Cela a pour effet de limiter la taille de la file d’attente de
+ travaux et la mémoire consommée par connexion, au lieu de les laisser
+ grandir sans limite. La décision se base sur le décompte des threads
+ inactifs, en attente et actifs dans le pool de threads de travail, avec
+ hystérèse pour éviter un basculement excessif des écouteurs entre « on » et
+ « off ».</p>
+
+ <div class="note"><h3>ThreadsPerChild et contrôle d’admission</h3>
+ <p>Ètant donné que la marque des « basses eaux » du contrôle d’admission est
+ une fraction de la valeur de la directive <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>, une très petite valeur pour
+ cette dernière (en particulier <code>ThreadsPerChild 1</code>) fait que les
+ écouteurs ne sont réactivés que lorsque la file d’attente de travaux est
+ totalement vide, ce qui dégrade sévèrement le débit. Une valeur d’au moins 4
+ pour <code>ThreadsPerChild</code> est fortement recommandée ; si cette
+ valeur est inférieure à 4, le serveur émet un avertissement.</p>
+ </div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="section">
+<h2 id="relationship">Liens de parenté avec les autres MPMs <a title="Lien permanent" href="#relationship" class="permalink">¶</a></h2>
+ <p><code class="module"><a href="../mod/motorz.html">motorz</a></code> utilise prefork pour la gestion des processus et
+ un pool de threads de travail APR, avec des threads sondeurs qui
+ répartissent le travail au sein du pool de threads de travail. Cette
+ approche est différente de la conception écouteur,thread de travail/fdqueue
+ du MPM <code class="module"><a href="../mod/event.html">event</a></code> dans laquelle les threads de travail réarment
+ eux-mêmes un domaine de sondage partagé et sûr en ce qui concerne les
+ threads.</p>
+
+ <p>La charge de travail détermine si l’ajout de threads sondeurs peut aider.
+ Si les threads de travail constituent le goulot d’étranglement du
+ CPU#8212;c’est en général le cas pour le traitement réel des
+ requêtes#8212;les threads sondeurs ne sont pas le facteur de limitation et
+ une valeur de la directive <code class="directive">PollersPerChild</code> au delà
+ de 1 ou 2 sera de peu d’effet. La conception à plusieurs threads sondeurs
+ supprime le plafond <em>structurel</em> de la conception à thread sondeur
+ unique, mais le débit par hôte reste tout de même gouverné par le CPU de
+ travail.</p>
+
+ <div class="note"><h3>Pas de ServerLimit / modification dynamique du nombre de
+ processus</h3>
+ <p>À la différence des MPMs <code class="module"><a href="../mod/worker.html">worker</a></code> et
+ <code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/motorz.html">motorz</a></code> ne modifie pas le nombre de
+ processus enfants avec la charge et ne définit pas de plafond séparé avec
+ <code class="directive"><a href="../mod/mpm_common.html#serverlimit">ServerLimit</a></code>. Le nombre de
+ processus enfants est fixé par la directive <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code> qui agit de ce fait comme une
+ limite physique du démon, et il n’y a pas de contrôles du style <code class="directive"><a href="../mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code>, <code class="directive"><a href="../mod/mpm_common.html#maxsparethreads">MaxSpareThreads</a></code> ou <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>. Il est possible de
+ définir le parallélisme du traitement avec la directive <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> (et, si le processus de
+ sondage sature, avec la directive <code class="directive">PollersPerChild</code>).</p>
+ </div>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
+<div class="directive-section"><h2 id="pollersperchild">Directive <span id="PollersPerChild">PollersPerChild</span> <a title="Lien permanent" href="#pollersperchild" class="permalink">¶</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de threads sondeurs par processus enfant</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PollersPerChild <var>number</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>PollersPerChild 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/motorz.html">motorz</a></code></td></tr>
+</table>
+ <p>La directive <code class="directive">PollersPerChild</code> permet de définir le
+ nombre de threads sondeurs pour chaque processus enfant. Chaque thread
+ sondeur possède ses propres domaine de sondage, sonnerie de chronomètre et
+ liste de recyclage de connexion, et gère une partie des connexions du
+ processus enfant ; ajouter des threads sondeurs augmente donc la fréquence à
+ laquelle un seul processus enfant peut accepter des connexions et répartir
+ les évènements d’entrée/sortie et les expirations de délai.</p>
+
+ <p>Une valeur de <code>0</code> (la valeur par défaut) signifie que le
+ nombre de threads sondeurs est calculé <em>automatiquement</em> : il est
+ déduit du nombre de CPUs en ligne, plafonné à un maximum codé en dur. Dans
+ tous les cas, le nombre de threads sondeurs est contraint de façon qu’il ne
+ dépasse jamais la valeur de la directive <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> et ne soit jamais inférieur
+ à un.</p>
+
+ <p>Étant donné que la répartition d’évènements est rarement le goulot
+ d’étranglement pour le traitement des requêtes réelles—il s’agit en
+ général du CPU de travail—des valeurs au-delà de un ou deux améliorent
+ rarement le débit. Augmenter <code class="directive">PollersPerChild</code> s’avère
+ principalement utile pour les charges de travail dominées par une rotation
+ très importante des connexions ou un grand nombre de connexions à base
+ d’évènements et inactives, où le processus de sondage/acceptation devient la
+ limite.</p>
+
+ <div class="note"><h3>Exemple</h3>
+ <pre class="prettyprint lang-config">StartServers 2
+ThreadsPerChild 64
+ThreadLimit 64
+PollersPerChild 2</pre>
+
+ </div>
+
+</div>
+</div>
+<div class="bottomlang">
+<p><span>Langues Disponibles: </span><a href="../en/mod/motorz.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../fr/mod/motorz.html" title="Français"> fr </a></p>
+</div><div id="footer">
+<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autorisé sous <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+ prettyPrint();
+}
+var langToggle = document.querySelector('.lang-toggle');
+var topLang = document.querySelector('.toplang');
+if (langToggle && topLang) {
+ langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
+}
+var qv = document.getElementById('quickview');
+if (qv) {
+ document.body.appendChild(qv);
+ var qvBtn = document.createElement('button');
+ qvBtn.className = 'qv-toggle';
+ qvBtn.setAttribute('aria-label', 'Toggle page navigation');
+ qvBtn.innerHTML = '☰';
+ document.body.appendChild(qvBtn);
+ qvBtn.addEventListener('click', function() {
+ var isOpen = qv.classList.toggle('open');
+ if (isOpen) {
+ qv.style.top = window.scrollY + 10 + 'px';
+ }
+ });
+ window.addEventListener('scroll', function() { qv.classList.remove('open'); });
+}
+//--><!]]></script>
+</body></html>
\ No newline at end of file
<variants>
<variant>en</variant>
+ <variant>fr</variant>
</variants>
</metafile>
<tr><td><a href="mod_auth_digest.html#authdigestdomain">AuthDigestDomain</a></td><td class="module"><a href="mod_auth_digest.html">mod_auth_digest</a></td></tr>
<tr><td colspan="2" class="descr">Les URIs qui se trouvent dans le même espace de protection
concernant l'authentification à base de condensés</td></tr>
-<tr class="odd"><td><a href="mod_auth_digest.html#authdigestnonceformat">AuthDigestNonceFormat</a></td><td class="module"><a href="mod_auth_digest.html">mod_auth_digest</a></td></tr>
-<tr class="odd"><td colspan="2" class="descr">Détermine la manière dont le nombre à valeur unique du
-serveur (nonce) est généré</td></tr>
+<tr class="odd"><td><a href="mod_auth_digest.html#authdigestnccheck">AuthDigestNcCheck</a></td><td class="module"><a href="mod_auth_digest.html">mod_auth_digest</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Active ou désactive la vérification du compteur d'envois du
+nombre à valeur unique (nonce) par le client</td></tr>
<tr><td><a href="mod_auth_digest.html#authdigestnoncelifetime">AuthDigestNonceLifetime</a></td><td class="module"><a href="mod_auth_digest.html">mod_auth_digest</a></td></tr>
<tr><td colspan="2" class="descr">Durée de validité du nombre à valeur unique du
serveur (nonce)</td></tr>
<tr><td><a href="mod_md.html#mdrequirehttps">MDRequireHttps off|temporary|permanent</a></td><td> off </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Redirects http: traffic to https: for Managed Domains.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdretrydelay">MDRetryDelay <var>duration</var></a></td><td> 30s </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Time length for first retry, doubled on every consecutive error.</td></tr>
<tr><td><a href="mod_md.html#mdretryfailover">MDRetryFailover <var>number</var></a></td><td> 13 </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">The number of errors before a failover to another CA is triggered</td></tr>
-<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to server-status.</td></tr>
+<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><td><a href="mod_md.html#mdstapleothers">MDStapleOthers on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Enable stapling for certificates not managed by mod_md.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdstapling">MDStapling on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Enable stapling for all or a particular MDomain.</td></tr>
<tr><td><a href="mod_md.html#mdstaplingkeepresponse">MDStaplingKeepResponse <var>duration</var></a></td><td> 7d </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Controls when old responses should be removed.</td></tr>
<tr><td><a href="mod_md.html#mdrequirehttps">MDRequireHttps off|temporary|permanent</a></td><td> off </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Redirects http: traffic to https: for Managed Domains.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdretrydelay">MDRetryDelay <var>duration</var></a></td><td> 30s </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Time length for first retry, doubled on every consecutive error.</td></tr>
<tr><td><a href="mod_md.html#mdretryfailover">MDRetryFailover <var>number</var></a></td><td> 13 </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">The number of errors before a failover to another CA is triggered</td></tr>
-<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to server-status.</td></tr>
+<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><td><a href="mod_md.html#mdstapleothers">MDStapleOthers on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Enable stapling for certificates not managed by mod_md.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdstapling">MDStapling on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Enable stapling for all or a particular MDomain.</td></tr>
<tr><td><a href="mod_md.html#mdstaplingkeepresponse">MDStaplingKeepResponse <var>duration</var></a></td><td> 7d </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Controls when old responses should be removed.</td></tr>
<tr><td><a href="mod_md.html#mdrequirehttps">MDRequireHttps off|temporary|permanent</a></td><td> off </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Redirects http: traffic to https: for Managed Domains.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdretrydelay">MDRetryDelay <var>duration</var></a></td><td> 30s </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Time length for first retry, doubled on every consecutive error.</td></tr>
<tr><td><a href="mod_md.html#mdretryfailover">MDRetryFailover <var>number</var></a></td><td> 13 </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">The number of errors before a failover to another CA is triggered</td></tr>
-<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to server-status.</td></tr>
+<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><td><a href="mod_md.html#mdstapleothers">MDStapleOthers on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Enable stapling for certificates not managed by mod_md.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdstapling">MDStapling on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Enable stapling for all or a particular MDomain.</td></tr>
<tr><td><a href="mod_md.html#mdstaplingkeepresponse">MDStaplingKeepResponse <var>duration</var></a></td><td> 7d </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Controls when old responses should be removed.</td></tr>
condensés du défit et de sa réponse</td></tr>
<tr><td><a href="mod_auth_digest.html#authdigestdomain">AuthDigestDomain <var>URI</var> [<var>URI</var>] ...</a></td><td></td><td>dh</td><td>E</td></tr><tr><td class="descr" colspan="4">Les URIs qui se trouvent dans le même espace de protection
concernant l'authentification à base de condensés</td></tr>
-<tr class="odd"><td><a href="mod_auth_digest.html#authdigestnccheck">AuthDigestNcCheck On|Off</a></td><td> Off </td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Active ou désactive la vérification du nombre d'envois du
-nombre à valeur unique (nonce) par le serveur</td></tr>
+<tr class="odd"><td><a href="mod_auth_digest.html#authdigestnccheck">AuthDigestNcCheck On|Off</a></td><td> Off </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Active ou désactive la vérification du compteur d'envois du
+nombre à valeur unique (nonce) par le client</td></tr>
<tr><td><a href="mod_auth_digest.html#authdigestnoncelifetime">AuthDigestNonceLifetime <var>secondes</var></a></td><td> 300 </td><td>dh</td><td>E</td></tr><tr><td class="descr" colspan="4">Durée de validité du nombre à valeur unique du
serveur (nonce)</td></tr>
<tr class="odd"><td><a href="mod_auth_digest.html#authdigestprovider">AuthDigestProvider <var>nom fournisseur</var>
version HTTP.</td></tr>
<tr class="odd"><td><a href="mod_policy.html#policyversionurl">PolicyVersionURL <var>url</var></a></td><td></td><td>svd</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">URL contenant la description de la politique de filtrage
des requêtes en fonction du numéro de version HTTP.</td></tr>
-<tr><td><a href="motorz.html#pollersperchild">PollersPerChild <var>number</var></a></td><td> 0 </td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Number of poll threads per child process</td></tr>
+<tr><td><a href="motorz.html#pollersperchild">PollersPerChild <var>number</var></a></td><td> 0 </td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Nombre de threads sondeurs par processus enfant</td></tr>
<tr class="odd"><td><a href="mod_privileges.html#privilegesmode">PrivilegesMode FAST|SECURE|SELECTIVE</a></td><td> FAST </td><td>svd</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Fait un compromis entre d'une part l'efficacité et la
vitesse de traitement et d'autre part la sécurité à l'encontre des codes
malicieux supportant les privilèges.</td></tr>
<tr><td><a href="mod_md.html#mdrequirehttps">MDRequireHttps off|temporary|permanent</a></td><td> off </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Redirects http: traffic to https: for Managed Domains.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdretrydelay">MDRetryDelay <var>duration</var></a></td><td> 30s </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Time length for first retry, doubled on every consecutive error.</td></tr>
<tr><td><a href="mod_md.html#mdretryfailover">MDRetryFailover <var>number</var></a></td><td> 13 </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">The number of errors before a failover to another CA is triggered</td></tr>
-<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to server-status.</td></tr>
+<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><td><a href="mod_md.html#mdstapleothers">MDStapleOthers on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Enable stapling for certificates not managed by mod_md.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdstapling">MDStapling on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Enable stapling for all or a particular MDomain.</td></tr>
<tr><td><a href="mod_md.html#mdstaplingkeepresponse">MDStaplingKeepResponse <var>duration</var></a></td><td> 7d </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Controls when old responses should be removed.</td></tr>
<tr><td><a href="mod_md.html#mdrequirehttps">MDRequireHttps off|temporary|permanent</a></td><td> off </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Redirects http: traffic to https: for Managed Domains.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdretrydelay">MDRetryDelay <var>duration</var></a></td><td> 30s </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Time length for first retry, doubled on every consecutive error.</td></tr>
<tr><td><a href="mod_md.html#mdretryfailover">MDRetryFailover <var>number</var></a></td><td> 13 </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">The number of errors before a failover to another CA is triggered</td></tr>
-<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to server-status.</td></tr>
+<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><td><a href="mod_md.html#mdstapleothers">MDStapleOthers on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Enable stapling for certificates not managed by mod_md.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdstapling">MDStapling on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Enable stapling for all or a particular MDomain.</td></tr>
<tr><td><a href="mod_md.html#mdstaplingkeepresponse">MDStaplingKeepResponse <var>duration</var></a></td><td> 7d </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Controls when old responses should be removed.</td></tr>
<tr><td><a href="mod_md.html#mdrequirehttps">MDRequireHttps off|temporary|permanent</a></td><td> off </td><td>s</td><td>D</td></tr><tr><td class="descr" colspan="4">Redirects http: traffic to https: for Managed Domains.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdretrydelay">MDRetryDelay <var>duration</var></a></td><td> 30s </td><td>s</td><td>D</td></tr><tr class="odd"><td class="descr" colspan="4">Time length for first retry, doubled on every consecutive error.</td></tr>
<tr><td><a href="mod_md.html#mdretryfailover">MDRetryFailover <var>number</var></a></td><td> 13 </td><td>s</td><td>D</td></tr><tr><td class="descr" colspan="4">The number of errors before a failover to another CA is triggered</td></tr>
-<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> on </td><td>s</td><td>D</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to server-status.</td></tr>
+<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> off </td><td>s</td><td>D</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><td><a href="mod_md.html#mdstapleothers">MDStapleOthers on|off</a></td><td> on </td><td>s</td><td>D</td></tr><tr><td class="descr" colspan="4">Enable stapling for certificates not managed by mod_md.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdstapling">MDStapling on|off</a></td><td> off </td><td>s</td><td>D</td></tr><tr class="odd"><td class="descr" colspan="4">Enable stapling for all or a particular MDomain.</td></tr>
<tr><td><a href="mod_md.html#mdstaplingkeepresponse">MDStaplingKeepResponse <var>duration</var></a></td><td> 7d </td><td>s</td><td>D</td></tr><tr><td class="descr" colspan="4">Controls when old responses should be removed.</td></tr>
<tr><td><a href="mod_md.html#mdrequirehttps">MDRequireHttps off|temporary|permanent</a></td><td> off </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Redirects http: traffic to https: for Managed Domains.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdretrydelay">MDRetryDelay <var>duration</var></a></td><td> 30s </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Time length for first retry, doubled on every consecutive error.</td></tr>
<tr><td><a href="mod_md.html#mdretryfailover">MDRetryFailover <var>number</var></a></td><td> 13 </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">The number of errors before a failover to another CA is triggered</td></tr>
-<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to server-status.</td></tr>
+<tr class="odd"><td><a href="mod_md.html#mdserverstatus">MDServerStatus on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Control if Managed Domain information is added to <code>server-status</code>.</td></tr>
<tr><td><a href="mod_md.html#mdstapleothers">MDStapleOthers on|off</a></td><td> on </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Enable stapling for certificates not managed by mod_md.</td></tr>
<tr class="odd"><td><a href="mod_md.html#mdstapling">MDStapling on|off</a></td><td> off </td><td>s</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Enable stapling for all or a particular MDomain.</td></tr>
<tr><td><a href="mod_md.html#mdstaplingkeepresponse">MDStaplingKeepResponse <var>duration</var></a></td><td> 7d </td><td>s</td><td>X</td></tr><tr><td class="descr" colspan="4">Controls when old responses should be removed.</td></tr>
<li><img alt="" src="./images/down.gif"> <a href="#newmods">New Modules</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#module">Module Enhancements</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#programs">Program Enhancements</a></li>
-<li><img alt="" src="./images/down.gif"> <a href="#documentation">Documentation</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#developer">Module Developer Changes</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<dd>The <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
directive now supports an optional <code>options=...</code>
argument, allowing per-listener socket options to be
- configured.</dd>
+ configured, including the <code>multipathtcp</code> option to
+ enable Multipath TCP where supported by the platform.</dd>
+
+ <dt>Asynchronous filtering and write completion</dt>
+ <dd>The new <code class="directive"><a href="./mod/core.html#asyncfilter">AsyncFilter</a></code>
+ directive declares which filter types support asynchronous
+ handling, and support for asynchronous write completion has been
+ extended throughout the core. This underpins the asynchronous
+ proxying and WebSocket handling described below.</dd>
+
+ <dt>HTTP/1.1 strictness controls</dt>
+ <dd>New core directives give finer control over HTTP/1.1
+ conformance: <code class="directive"><a href="./mod/core.html#httpexpectstrict">HttpExpectStrict</a></code>
+ controls whether a <code>417</code> is returned when a client
+ omits a <code>100-Continue</code> expectation, and
+ <code class="directive"><a href="./mod/core.html#httpcontentlengthheadzero">HttpContentLengthHeadZero</a></code>
+ controls <code>Content-Length</code> handling for
+ <code>HEAD</code> requests.</dd>
+
+ <dt>Per-context log level overrides</dt>
+ <dd>The new <code class="directive"><a href="./mod/core.html#logleveloverride">LogLevelOverride</a></code>
+ directive allows the log level to be overridden for individual
+ client IP addresses, easing targeted debugging on a live
+ server.</dd>
<dt><code>systemd</code> socket activation</dt>
<dd><code class="program"><a href="./programs/httpd.html">httpd</a></code> can now be configured to start via
<h2 id="newmods">New Modules <a title="Permanent link" href="#newmods" class="permalink">¶</a></h2>
<dl>
+ <dt><code class="module"><a href="./mod/mod_auth_bearer.html">mod_auth_bearer</a></code>, <code class="module"><a href="./mod/mod_autht_core.html">mod_autht_core</a></code>,
+ <code class="module"><a href="./mod/mod_autht_jwt.html">mod_autht_jwt</a></code></dt>
+ <dd>A new authentication-token (<em>autht</em>) provider framework
+ has been added alongside the existing authn/authz provider stacks.
+ <code class="module"><a href="./mod/mod_auth_bearer.html">mod_auth_bearer</a></code> implements
+ <a href="https://www.rfc-editor.org/rfc/rfc6750">RFC 6750</a> <code>Bearer</code> token authentication as a
+ front-end (analogous to <code class="module"><a href="./mod/mod_auth_basic.html">mod_auth_basic</a></code>),
+ <code class="module"><a href="./mod/mod_autht_core.html">mod_autht_core</a></code> hosts the autht provider registry,
+ and <code class="module"><a href="./mod/mod_autht_jwt.html">mod_autht_jwt</a></code> provides JSON Web Token
+ signing and verification.</dd>
+ <dt><code class="module"><a href="./mod/mod_crypto.html">mod_crypto</a></code></dt>
+ <dd>This new module can encrypt and decrypt request and response
+ bodies via input and output filters, using the APR crypto
+ drivers.</dd>
<dt><code class="module"><a href="./mod/mod_journald.html">mod_journald</a></code>, <code class="module"><a href="./mod/mod_syslog.html">mod_syslog</a></code></dt>
<dd>These new modules provide support for logging to syslog or
<code>journald</code>.</dd>
+ <dt>mod_log_json</dt>
+ <dd>This new module provides structured access logging in JSON
+ format.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_proxy_beacon.html">mod_proxy_beacon</a></code></dt>
+ <dd>This new module lets back-end reverse-proxy servers announce
+ themselves over a UDP datagram channel so that they are
+ automatically added to their front-end proxy balancer.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_allowhandlers.html">mod_allowhandlers</a></code></dt>
+ <dd>This new module restricts which handlers may run in a given
+ context, providing an additional layer of access control.</dd>
+
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<li>The <code>SSLKEYLOGFILE</code> environment variable can
now be set to log private key material for off-line decryption
of SSL/TLS protocol dumps using third-party tools.</li>
+ <li>The new <code class="directive"><a href="./mod/mod_ssl.html#sslpolicy">SSLPolicy</a></code>
+ directive allows a named bundle of SSL settings to be defined
+ once and applied to multiple virtual hosts.</li>
</ul></dd>
+ <dt><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>, <code class="module"><a href="./mod/mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></code></dt>
+ <dd>Proxying can now run asynchronously under the event MPM,
+ freeing worker threads while waiting on slow back-ends. This
+ includes asynchronous handling of <code>Upgrade</code>d
+ protocols and WebSockets, tuned by the new
+ <code class="directive"><a href="./mod/mod_proxy.html#proxyasyncdelay">ProxyAsyncDelay</a></code>,
+ <code class="directive"><a href="./mod/mod_proxy.html#proxyasyncidletimeout">ProxyAsyncIdleTimeout</a></code>,
+ <code>ProxyWebsocketAsyncDelay</code> and
+ <code>ProxyWebsocketIdleTimeout</code> directives.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_http2.html">mod_http2</a></code></dt>
+ <dd>HTTP/2 gains support for bootstrapping WebSockets as described
+ in <a href="https://www.rfc-editor.org/rfc/rfc8441">RFC 8441</a> (enabled with the new <code>H2WebSockets</code>
+ directive), the new <code>H2EarlyHint</code> directive for adding
+ headers carried in a <code>103 Early Hints</code> response, and
+ accurate accounting of bytes sent for the <code>%O</code> log
+ format.</dd>
+
+ <dt><code class="module"><a href="./mod/mod_dav.html">mod_dav</a></code></dt>
+ <dd>WebDAV gains directory quota support
+ (<code class="directive"><a href="./mod/mod_dav_fs.html#davquota">DAVquota</a></code>), Microsoft
+ WebDAV protocol extensions
+ (<code class="directive"><a href="./mod/mod_dav.html#davmsext">DAVMSext</a></code>), the
+ <code>DAVHonorMtimeHeader</code> and <code>DAVLockDBType</code>
+ directives, and improved strong-ETag compliance.</dd>
+
+ <dt>Other module enhancements</dt>
+ <dd><code class="module"><a href="./mod/mod_autoindex.html">mod_autoindex</a></code> adds
+ <code class="directive"><a href="./mod/mod_autoindex.html#indexforbiddenreturn404">IndexForbiddenReturn404</a></code>;
+ <code class="module"><a href="./mod/mod_mime.html">mod_mime</a></code> adds <code>MimeOptions</code>; and
+ <code class="module"><a href="./mod/mod_session_cookie.html">mod_session_cookie</a></code> adds
+ <code>SessionCookieMaxAge</code>.</dd>
+
<dt><code class="module"><a href="./mod/mod_cgid.html">mod_cgid</a></code></dt>
<dd>If configured with <code>--enable-cgid-fdpassing</code>, the
CGI daemon will set up stderr handling in the same way as
mod_cgi.</dd>
-
+
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
-<h2 id="documentation">Documentation <a title="Permanent link" href="#documentation" class="permalink">¶</a></h2>
-
- <dl>
- <dt>Fill me in</dt>
- <dd>The <code class="module"><a href="./mod/mod_example.html">mod_example</a></code> documentation fill me in.</dd>
-
- </dl>
- </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
-<div class="section">
<h2 id="developer">Module Developer Changes <a title="Permanent link" href="#developer" class="permalink">¶</a></h2>
<dl>
+ <dt>Core / HTTP module separation</dt>
+
+ <dd>A large amount of code has been moved out of the
+ <code>http</code> module into the core server — including the
+ default handler, the default input and output filters, and the
+ core configuration directives — so that the server can run
+ with or without the HTTP module loaded. As part of this work
+ <code>ap_set_etag()</code> moved from the <code>http</code> module
+ into the core.</dd>
+
+ <dt>New metadata bucket types and HTTP filter split</dt>
+
+ <dd>New <code>REQUEST</code>, <code>RESPONSE</code> and
+ <code>HEADERS</code> metadata bucket types have been added to the
+ API, along with a new method for setting the standard
+ <code>Date</code> and <code>Server</code> response headers and
+ helpers for formatting parts of HTTP/1.x (headers, end chunks) for
+ reuse outside the core, e.g. in <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>. The
+ <code>HTTP_IN</code> filter has been split into a generic-HTTP
+ filter and an HTTP/1.x-specific <code>HTTP1_BODY_IN</code> filter,
+ and a new <code>body_indeterminate</code> flag on
+ <code>request_rec</code> indicates that a request body may be
+ present and must be read or discarded.</dd>
+
+ <dt>Strong ETag support and request binary notes</dt>
+
+ <dd>A concept of "binary notes" has been added to
+ <code>request_rec</code>, allowing packed bit flags to be set on a
+ request. The first such note, <code>AP_REQUEST_STRONG_ETAG</code>,
+ lets modules force a strong ETag to comply with RFC requirements
+ such as those mandated by various WebDAV extensions. New functions
+ <code>ap_make_etag_ex()</code> and <code>ap_set_etag_fd()</code>
+ give full control over ETag generation.</dd>
+
<dt>New type <code>ap_method_mask_t</code>.</dt>
<dd>The <code>ap_method_mask_t</code> type has been added and is
returns a <code>const char *</code> string value. The pool
argument must now be non-NULL.</dd>
+ <dt>Removed APIs</dt>
+
+ <dd>Corresponding with the removal of the <code>Content-MD5</code>
+ header, the <code>ap_md5digest()</code> and
+ <code>ap_md5contextTo64()</code> functions have been removed.</dd>
+
</dl>
<p>The developer documentation contains a
<a href="developer/new_api_2_6.html">detailed list of API changes</a>.</p>
--- /dev/null
+<!DOCTYPE html SYSTEM "about:legacy-compat">
+<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="width=device-width, initial-scale=1" name="viewport">
+<!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ -->
+<title>Présentation des nouvelles fonctionnalités de la version 2.6 du serveur
+HTTP Apache - Serveur HTTP Apache Version 2.5</title>
+<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
+<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
+<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="./style/css/prettify.css">
+<script src="./style/scripts/prettify.min.js">
+</script>
+
+<link href="./images/favicon.png" rel="shortcut icon"></head>
+<body id="manual-page"><div id="page-header">
+<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
+<p class="apache">Serveur HTTP Apache Version 2.5</p>
+<img alt="" src="./images/feather.png"></div>
+<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
+<div id="path">
+<a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">Serveur HTTP</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Présentation des nouvelles fonctionnalités de la version 2.6 du serveur
+HTTP Apache</h1>
+<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
+<div class="toplang">
+<p><span>Langues Disponibles: </span><a href="./en/new_features_2_6.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="./fr/new_features_2_6.html" title="Français"> fr </a></p>
+</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
+
+ <p>Ce document décrit quelques changements majeurs entre les version 2.4 et
+ 2.6 du serveur HTTP Apache. Pour les nouvelles fonctionnalités apparues dans
+ la version 2.4, voir le document <a href="new_features_2_4.html">nouvelles
+ fonctionnalités de la version 2.4</a>.</p>
+</div>
+<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif"> <a href="#core">Évolutions du cœur du serveur</a></li>
+<li><img alt="" src="./images/down.gif"> <a href="#newmods">Nouveaux modules</a></li>
+<li><img alt="" src="./images/down.gif"> <a href="#module">Évolutions des module</a></li>
+<li><img alt="" src="./images/down.gif"> <a href="#programs">Évolutions des programmes</a></li>
+<li><img alt="" src="./images/down.gif"> <a href="#documentation">Documentation</a></li>
+<li><img alt="" src="./images/down.gif"> <a href="#developer">Modifications pour le développeur de modules</a></li>
+</ul></div>
+<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
+<div class="section">
+<h2 id="core">Évolutions du cœur du serveur <a title="Lien permanent" href="#core" class="permalink">¶</a></h2>
+
+ <dl>
+ <dt>Directive ContentDigest et en-tête Content-MD5</dt>
+ <dd>La directive <code>ContentDigest</code> et la prise en charge de
+ l’en-tête <code>Content-MD5</code> ont été supprimées du serveur, en
+ accord avec la suppression de cet en-tête de la <a href="https://www.rfc-editor.org/rfc/rfc7231#appendix-B">RFC 7231</a> (Hypertext Transfer Protocol (HTTP/1.1):
+ Semantics and Content).</dd>
+
+ <dt>Options de la directive <code>Listen</code></dt>
+ <dd>La directive <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> prend
+ maintenant en charge un argument facultatif <code>options=...</code>,
+ permettant de spécifier des options de socket par écouteur.</dd>
+
+ <dt>Activation du socket <code>systemd</code></dt>
+ <dd><code class="program"><a href="./programs/httpd.html">httpd</a></code> peut maintenant être configuré pour démarrer
+ via l’<a href="https://www.freedesktop.org/software/systemd/man/systemd.socket.html">l’activation
+ du socket</a> <code>systemd</code>.</dd>
+
+
+
+ <dt>Nouvelle directive <code>DefaultStateDir</code></dt>
+ <dd>La nouvelle directive <code class="directive"><a href="./mod/core.html#defaultstatedir">DefaultStateDir</a></code> permet de spécifier un
+ répertoire pour stocker les états persistants.</dd>
+
+ <dt>Prise en charge de la Zone/portée dans les adresses IPv6</dt>
+ <dd>Si le serveur a été compilé avec APR version 1.7.0 ou supérieure, des
+ zones (portées) peuvent être spécifiées dans une adresse IPv6 link-local
+ utilisée avec la directive <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> ou <code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code>.</dd>
+
+ </dl>
+ </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
+<div class="section">
+<h2 id="newmods">Nouveaux modules <a title="Lien permanent" href="#newmods" class="permalink">¶</a></h2>
+
+ <dl>
+
+
+ <dt><code class="module"><a href="./mod/mod_journald.html">mod_journald</a></code>, <code class="module"><a href="./mod/mod_syslog.html">mod_syslog</a></code></dt>
+ <dd>Ces nouveaux modules permettent la prise en charge de la
+ journalisation vers syslog ou <code>journald</code>.</dd>
+
+</dl>
+ </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
+<div class="section">
+<h2 id="module">Évolutions des module <a title="Lien permanent" href="#module" class="permalink">¶</a></h2>
+
+ <dl>
+ <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt>
+ <dd>Les évolutions de mod_ssl suivantes sont incluses :
+ <ul>
+ <li>La directive <code class="directive"><a href="./mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code>
+ est maintenant obsolète et ignorée si le serveur a été compilé avec
+ OpenSSL version 1.1.1 ou supérieure.</li>
+ <li>La variable d’environnement <code>SSLKEYLOGFILE</code> peut
+ maintenant être définie pour enregistrer des informations de clé privée
+ pour déchiffrer hors-ligne des vidages du protocole SSL/TLS en utilisant
+ des outils tiers.</li>
+ </ul></dd>
+
+ <dt><code class="module"><a href="./mod/mod_cgid.html">mod_cgid</a></code></dt>
+ <dd>Si le serveur a été configuré avec
+ <code>--enable-cgid-fdpassing</code>, le démon CGI configure la gestion de
+ stderr de la même façon que mod_cgi.</dd>
+
+
+ </dl>
+ </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
+<div class="section">
+<h2 id="programs">Évolutions des programmes <a title="Lien permanent" href="#programs" class="permalink">¶</a></h2>
+
+ <dl>
+ <dt><code class="program"><a href="./programs/htpasswd.html">htpasswd</a></code></dt>
+ <dd>L’utilitaire <code class="program"><a href="./programs/htpasswd.html">htpasswd</a></code> peut maintenant générer des
+ hachages <code>crypt()</code> SHA-256 ou SHA-512 s’ils sont pris en
+ charge par la bibliothèque C.</dd>
+ </dl>
+ </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
+<div class="section">
+<h2 id="documentation">Documentation <a title="Lien permanent" href="#documentation" class="permalink">¶</a></h2>
+
+ <dl>
+ <dt>Complétez moi</dt>
+ <dd>La documentation de <code class="module"><a href="./mod/mod_example.html">mod_example</a></code> "Complétez moi".</dd>
+
+ </dl>
+ </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
+<div class="section">
+<h2 id="developer">Modifications pour le développeur de modules <a title="Lien permanent" href="#developer" class="permalink">¶</a></h2>
+
+ <dl>
+ <dt>Nouveau type <code>ap_method_mask_t</code></dt>
+
+ <dd>Le type <code>ap_method_mask_t</code> a été ajouté et est maintenant
+ utilisé pour le champ method_mask dans ap_method_list_t, AP_METHOD_BIT, le
+ champ allowed de request_rec, le champ limited de cmd_parms.</dd>
+
+ <dt>Modification du fichier <code>mod_ssl.h</code> de l’API de mod_ssl</dt>
+
+ <dd>L’API de la fonction optionnelle <code>ssl_var_lookup</code> prend
+ maintenant un argument <code>const char *</code><em>name</em> et renvoie
+ une chaîne <code>const char *</code>. L’argument pool doit maintenant être
+ non NULL.</dd>
+
+ </dl>
+ <p>La documentation du développeur contient une <a href="developer/new_api_2_6.html">liste détaillée des changements de l’API</a>.
+ </p>
+ </div></div>
+<div class="bottomlang">
+<p><span>Langues Disponibles: </span><a href="./en/new_features_2_6.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="./fr/new_features_2_6.html" title="Français"> fr </a></p>
+</div><div id="footer">
+<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autorisé sous <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+ prettyPrint();
+}
+var langToggle = document.querySelector('.lang-toggle');
+var topLang = document.querySelector('.toplang');
+if (langToggle && topLang) {
+ langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
+}
+var qv = document.getElementById('quickview');
+if (qv) {
+ document.body.appendChild(qv);
+ var qvBtn = document.createElement('button');
+ qvBtn.className = 'qv-toggle';
+ qvBtn.setAttribute('aria-label', 'Toggle page navigation');
+ qvBtn.innerHTML = '☰';
+ document.body.appendChild(qvBtn);
+ qvBtn.addEventListener('click', function() {
+ var isOpen = qv.classList.toggle('open');
+ if (isOpen) {
+ qv.style.top = window.scrollY + 10 + 'px';
+ }
+ });
+ window.addEventListener('scroll', function() { qv.classList.remove('open'); });
+}
+//--><!]]></script>
+</body></html>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
-<!-- English Revision: 1933854 -->
+<!-- English Revision: 1933854:1935151 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!--
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
</variants>
</metafile>
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
-<title>Compiling Apache for Microsoft Windows - Apache HTTP Server Version 2.5</title>
+<title>Compiling Apache httpd for Microsoft Windows - Apache HTTP Server Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
-<a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">HTTP Server</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Platform Specific Notes</a></div><div id="page-content"><div id="preamble"><h1>Compiling Apache for Microsoft Windows</h1>
+<a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">HTTP Server</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Platform Specific Notes</a></div><div id="page-content"><div id="preamble"><h1>Compiling Apache httpd for Microsoft Windows</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/platform/win_compiling.html" title="English"> en </a> |
<a href="../fr/platform/win_compiling.html" title="Français"> fr </a> |
<a href="../ko/platform/win_compiling.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Il y a de nombreux points importants à connaître avant de
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1914491 -->
+<!-- English Revision: 1914491:1935202 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1914491 (outdated) -->
+<!-- English Revision: 105989:1935202 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ko</variant>
</variants>
</metafile>
<h2 id="documentroot">DocumentRoot <a title="Permanent link" href="#documentroot" class="permalink">¶</a></h2>
<p>In deciding what file to serve for a given request, httpd's
- default behavior is to take the <a href="directive-dict.html#Syntax">URL-Path</a> for the request (the part
- of the URL following the hostname and port) and add it to the end
- of the <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> specified
+ default behavior is to take the
+ <a href="directive-dict.html#Syntax">URL-path</a> for the request
+ and add it to the end of the
+ <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> specified
in your configuration files. Therefore, the files and directories
underneath the <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code>
make up the basic document tree which will be visible from the
<a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/urlmapping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Ce document explique comment le serveur HTTP Apache utilise l'URL contenue dans une
requête pour déterminer le noeud du système de fichier à partir duquel le
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1934093 -->
+<!-- English Revision: 1934093:1935166 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 151408:1934093 (outdated) -->
+<!-- English Revision: 151408:1935166 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1934093 (outdated) -->
+<!-- English Revision: 151408:1935166 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1310494:1934093 (outdated) -->
+<!-- English Revision: 1310494:1935166 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>