1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
|
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<!-- English Revision: 1883045 -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="new_features_2_4.xml.meta">
<title>Vue d'ensemble des nouvelles fonctionnalités de la version 2.4 du
serveur HTTP Apache</title>
<summary>
<p>Ce document décrit les modifications majeures apportées par
la version 2.4 du serveur HTTP Apache. Pour les nouvelles fonctionnalités
ajoutées par la version 2.2, se référer au document
<a href="new_features_2_2.html">Nouvelles fonctionnalités
de la version 2.2</a>.</p>
</summary>
<section id="core">
<title>Améliorations du noyau</title>
<dl>
<dt>Modules multiprocessus (MPMs) chargeables à l'exécution</dt>
<dd>Plusieurs MPMs peuvent maintenant être <a
href="mpm.html#dynamic">compilés en tant que modules
chargeables</a>. Le choix du MPM à utiliser s'effectue
à l'exécution via la directive <directive
module="mod_so">LoadModule</directive>.</dd>
<dt>MPM Event</dt>
<dd>Le <a href="mod/event.html">MPM Event</a> n'en est plus au stade expérimental et est
maintenant pleinement supporté.</dd>
<dt>Support du mode asynchrone</dt>
<dd>Le support des lectures/écritures asynchrones pour les MPMs et
les plateformes qui l'implémentent a été amélioré.</dd>
<dt>Configuration du niveau de journalisation (LogLevel) par
module et par répertoire</dt>
<dd>La directive <directive module="core">LogLevel</directive>
peut maintenant être définie par module et par répertoire. Les
nouveaux niveaux <code>trace1</code> à <code>trace8</code> ont été
ajoutés au dessus du niveau de journalisation <code>debug</code>.</dd>
<dt>Sections de configuration au niveau requête</dt>
<dd>Les sections <directive module="core">If</directive>,
<directive module="core" type="section">ElseIf</directive> et
<directive module="core" type="section">Else</directive>
permettent de définir une configuration en fonction de critères
liés à la requête.</dd>
<dt>Interpréteur d'expressions à usage général</dt>
<dd>Un nouvel interpréteur d'expressions permet de spécifier des
<a href="expr.html">conditions complexes</a> via des directives à
syntaxe commune comme <directive
module="mod_setenvif">SetEnvIfExpr</directive>, <directive
module="mod_rewrite">RewriteCond</directive>, <directive
module="mod_headers">Header</directive>,
<directive module="core" type="section">If</directive>, etc...
</dd>
<dt>KeepAliveTimeout en millisecondes</dt>
<dd>Il est maintenant possible de définir la directive <directive
module="core">KeepAliveTimeout</directive> en millisecondes.
</dd>
<dt>Directive NameVirtualHost</dt>
<dd>Cette directive n'est plus nécessaire et est maintenant obsolète.</dd>
<dt>Directives autorisées dans les fichiers <code>.htaccess</code></dt>
<dd>La nouvelle directive <directive
module="core">AllowOverrideList</directive> permet de contrôler de
manière plus précise la liste des directives autorisées dans les
fichiers <code>.htaccess</code>.</dd>
<dt>Variables dans les fichiers de configuration</dt>
<dd>La directive <directive module="core">Define</directive>
permet de définir des variables dans les fichiers de
configuration, améliorant ainsi la clareté de la présentation si
la même valeur est utilisée en plusieurs points de la
configuration.
</dd>
<dt>Diminution de la mémoire utilisée</dt>
<dd>Bien qu'elle propose de nombreuses nouvelles fonctionnalités,
la version 2.4.x tend à utiliser moins de mémoire que la version
2.2.x.</dd>
</dl>
</section>
<section id="newmods">
<title>Nouveau modules</title>
<dl>
<dt><module>mod_proxy_fcgi</module></dt>
<dd>Support des serveur FastCGI d'arrière-plan pour
<module>mod_proxy</module>.</dd>
<dt><module>mod_proxy_scgi</module></dt>
<dd>Support des serveurs SCGI d'arrière-plan pour
<module>mod_proxy</module>.</dd>
<dt><module>mod_proxy_express</module></dt>
<dd>Ajoute à <module>mod_proxy</module> la configuration dynamique
de mandataires inverses en masse.</dd>
<dt><module>mod_remoteip</module></dt>
<dd>Remplace l'adresse IP distante et le nom d'hôte apparents du
client pour la requête courante par la liste d'adresses IP
présentée par un mandataire ou un répartiteur de charge via les
en-têtes de la requête.</dd>
<dt><module>mod_heartmonitor</module>,
<module>mod_lbmethod_heartbeat</module></dt>
<dd>Permet à <module>mod_proxy_balancer</module> de répartir la
charge en fonction du nombre de connexions actives sur les
serveurs d'arrière-plan.</dd>
<dt><module>mod_proxy_html</module></dt>
<dd>Anciennement module tiers, il supporte la correction des liens
HTML dans une situation de mandat inverse, où le serveur
d'arrière-plan génère des URLs qui ne sont pas valides du point de
vue des clients du mandataire.</dd>
<dt><module>mod_sed</module></dt>
<dd>Une amélioration de <module>mod_substitute</module> qui permet
d'éditer le corps de la réponse avec toute la puissance de la
commande sed.</dd>
<dt><module>mod_auth_form</module></dt>
<dd>Implémente une authentification à base de formulaire.</dd>
<dt><module>mod_session</module></dt>
<dd>Permet de conserver les données de sessions des clients sous
forme de cookies ou dans une base de données.</dd>
<dt><module>mod_allowmethods</module></dt>
<dd>Permet de restreindre l'utilisation de
certaines méthodes HTTP sans interférer avec l'authentification et
l'autorisation.</dd>
<dt><module>mod_lua</module></dt>
<dd>Embarque le langage <a href="http://www.lua.org/">Lua</a> dans
httpd pour la configuration et les fonctions logiques courantes
(Expérimental).</dd>
<dt><module>mod_log_debug</module></dt>
<dd>Permet d'introduire une journalisation personnalisée à
différentes phases du traitement de la requête.</dd>
<dt><module>mod_buffer</module></dt>
<dd>Fournit un tampon pour les piles des filtres en entrée et en
sortie.</dd>
<dt><module>mod_data</module></dt>
<dd>Convertit un corps de réponse en URL de type données RFC2397.</dd>
<dt><module>mod_ratelimit</module></dt>
<dd>Permet de limiter la bande passante pour certains
clients.</dd>
<dt><module>mod_request</module></dt>
<dd>Fournit des filtres permettant de gérer et de mettre à
disposition les corps des requêtes HTTP.</dd>
<dt><module>mod_reflector</module></dt>
<dd>Permet de renvoyer comme réponse le corps de la requête via la
pile du filtre de sortie.</dd>
<dt><module>mod_slotmem_shm</module></dt>
<dd>Met à disposition un fournisseur de mémoire partagée à base de
slots (du style tableau de bord).</dd>
<dt><module>mod_xml2enc</module></dt>
<dd>Anciennement module tiers, il supporte l'internationalisation
dans les modules de filtrage basés sur libxml2 (support du
markup)</dd>
<dt><module>mod_macro</module> (disponible à partir de la version 2.4.5)</dt>
<dd>Permet d'utiliser des macros au sein des fichiers de
configuration.</dd>
<dt><module>mod_proxy_wstunnel</module> (disponible à partir de la version 2.4.5)</dt>
<dd>Support des tunnels web-socket.</dd>
<dt><module>mod_authnz_fcgi</module> (disponible à partir de la version 2.4.10)</dt>
<dd>Permet aux applications d'autorisation FastCGI d'authentifier
et/ou autoriser les clients.</dd>
<dt><module>mod_http2</module> (disponible à partir de la
version 2.4.17)</dt>
<dd>Support de la couche transport HTTP/2.</dd>
<dt><module>mod_proxy_http2</module> (disponible à partir de la version 2.4.19)</dt>
<dd>Support du protocole HTTP/2 pour <module>mod_proxy</module></dd>
<dt><module>mod_proxy_hcheck</module> (disponible à partir de la version 2.4.21)</dt>
<dd>Support d'un bilan de santé dynamique indépendant pour les serveurs
d'arrière-plan mandatés distants.</dd>
<dt><module>mod_brotli</module> (disponible à partir de la version 2.4.26)</dt>
<dd>Support de l'algorithme de compression Brotli.</dd>
<dt><module>mod_md</module> (disponible à partir de la version 2.4.30)</dt>
<dd>Automatisation de l'obtention de certificats via le protocole ACME.</dd>
<dt><module>mod_proxy_uwsgi</module> (disponible à partir de la version 2.4.30)</dt>
<dd>module passerelle UWSGI pour <module>mod_proxy</module>.</dd>
<dt><module>mod_socache_redis</module> (disponible à partir de la version 2.4.39)</dt>
<dd>Supporte le fournisseur de cache d'objets partagés basé sur <a
href="http://redis.io/">Redis</a>.</dd>
<dt><module>mod_systemd</module> (disponible à partir de la version 2.4.42)</dt>
<dd>intégration de systemd. Permet d'utiliser httpd en tant que service avec
le paramètre systemd <code>Type=notify</code>.</dd>
</dl>
</section>
<section id="module">
<title>Améliorations des modules</title>
<dl>
<dt><module>mod_ssl</module></dt>
<dd><module>mod_ssl</module> peut maintenant vérifier la
validité des certificats clients en se connectant à
un serveur OCSP. Il est possible de définir un
répondeur par défaut, et de choisir si l'on
préfère le répondeur désigné
dans le certificat client.</dd>
<dd>En outre, <module>mod_ssl</module> supporte maintenant
l'estampillage OCSP (OCSP stapling), qui permet au serveur
d'attester la validité de son certificat auprès du client au
cours de la phase de négociation de la connexion.</dd>
<dd>Enfin, <module>mod_ssl</module> peut maintenant être configuré pour
que celui-ci partage les données de session SSL entre les serveurs
via memcached.</dd>
<dd>Le support des clés EC a été ajouté à celui des clés RSA et
DSA.</dd>
<dd>Support de TLS-SRP (disponible à partir de la version 2.4.4).</dd>
<dt><module>mod_proxy</module></dt>
<dd>La directive <directive
module="mod_proxy">ProxyPass</directive> est maintenant configurée
de manière optimale dans les sections <directive
module="core">Location</directive> ou <directive
module="core">LocationMatch</directive>, et offre un gain de
performances important par rapport à la syntaxe traditionnelle à
deux paramètres lorsqu'elle est présente en grand nombre.</dd>
<dd>Il est maintenant possible de configurer l'adresse source dans
les requêtes mandatées.</dd>
<dd>Support des sockets de type Unix vers le serveur
d'arrière-plan (disponible à partir de la version 2.4.7).</dd>
<dt><module>mod_proxy_balancer</module></dt>
<dd>Le gestionnaire de répartition de charge propose de nouvelles
fonctionnalités. Ainsi, les possibilités de configuration des
membres du groupe de répartition de charge pendant l'exécution ont
été améliorées (possibilité d'ajout d'un membre supplémentaire).</dd>
<dd>Configuration à l'exécution d'un sous-ensemble de paramètres
de répartition de charge.</dd>
<dd>Les membres du groupe de répartition peuvent être définis à
'Drain' de façon à ce qu'ils ne répondent qu'aux sessions
persistantes existantes, ce qui permet de les mettre hors ligne en
douceur.</dd>
<dd>Les règlages du répartiteur de charge peuvent être rendus
persistants après redémarrage.</dd>
<dt><module>mod_cache</module></dt>
<dd>Le filtre CACHE du module <module>mod_cache</module> peut être
inséré à un certain point de la chaîne de filtrage pour contrôler
plus finement la mise en cache.
</dd>
<dd><module>mod_cache</module> peut maintenant mettre en cache des
requêtes HEAD.</dd>
<dd>Chaque fois que cela est possible, les directives de
<module>mod_cache</module> peuvent maintenant être définies au
niveau du répertoire, et non plus seulement au niveau du serveur
principal.</dd>
<dd>L'URL de base des URLs en cache peut être personnalisée de
façon à ce qu'un cluster de caches puisse partager le même préfixe
d'URL.</dd>
<dd><module>mod_cache</module> peut maintenant servir du contenu
non mis à jour lorsqu'un serveur d'arrière-plan n'est pas
disponible (erreur 5xx).</dd>
<dd><module>mod_cache</module> peut maintenant insérer
HIT/MISS/REVALIDATE dans un en-tête X-Cache.</dd>
<dt><module>mod_include</module></dt>
<dd>Support de l'attribut 'onerror' dans un élément 'include',
permettant de renvoyer un message d'erreur personnalisé à la place
du message d'erreur par défaut.</dd>
<dt><module>mod_cgi</module>, <module>mod_include</module>,
<module>mod_isapi</module>, ...</dt>
<dd>La traduction des en-têtes en variables d'environnement est
plus stricte qu'avant, ce qui permet de diminuer l'exposition aux attaques
de type cross-site-scripting via injection d'en-têtes. Les noms
d'en-têtes contenant des caractères invalides (comme les caractères
de soulignement) ne sont plus convertis en variables d'environnement. Le document <a
href="env.html">Les variables d'environnement dans Apache</a>
présente quelques pistes pour contourner ce problème avec les
clients anciens qui nécessitent de tels en-têtes (Ceci affecte
tous les modules qui utilisent ces variables d'environnement).</dd>
<dt><module>mod_authz_core</module> Conteneurs de logique d'autorisation</dt>
<dd>La directive <directive
module="mod_authz_core">Require</directive> et les directives de
conteneurs associées, comme <directive module="mod_authz_core"
type="section">RequireAll</directive>, permettent de définir une
logique d'autorisation avancée.</dd>
<dt><module>mod_rewrite</module></dt>
<dd>La directive <directive
module="mod_rewrite">RewriteRule</directive> dispose maintenant
des drapeaux <code>[QSD]</code> (Query String Discard) et
<code>[END]</code> qui permettent de simplifier les scénarios de
réécriture courants.</dd>
<dd>Possibilité d'utiliser des expressions booléennes complexes
dans la directive <directive
module="mod_rewrite">RewriteCond</directive>.</dd>
<dd>Possibilité d'utiliser des requêtes SQL en tant que fonctions
dans la directive <directive
module="mod_rewrite">RewriteMap</directive>.</dd>
<dt><module>mod_ldap</module>, <module>mod_authnz_ldap</module></dt>
<dd><module>mod_authnz_ldap</module> ajoute le support des
groupes imbriqués.</dd>
<dd><module>mod_ldap</module> apporte les directives <directive
module="mod_ldap">LDAPConnectionPoolTTL</directive> et <directive
module="mod_ldap">LDAPTimeout</directive>, ainsi que d'autres
améliorations dans le traitement des délais. Ceci s'avère utile
pour les configurations où un pare-feu à mémoire d'état (stateful)
rejète les connexions inactives vers le serveur LDAP.</dd>
<dd><module>mod_ldap</module> propose la directive <directive
module="mod_ldap">LDAPLibraryDebug</directive> qui permet de
journaliser les informations de débogage fournies par la boîte à
outils LDAP utilisée.</dd>
<dt><module>mod_info</module></dt>
<dd><module>mod_info</module> est maintenant capable d'afficher la
configuration préinterprétée sur stdout au cours du démarrage du
serveur.</dd>
<dt><module>mod_auth_basic</module></dt>
<dd>Nouveau mécanisme générique permettant d'effectuer une
authentification basique (disponible à partir de la version 2.4.5).</dd>
</dl>
</section>
<section id="programs">
<title>Améliorations des programmes</title>
<dl>
<dt><program>fcgistarter</program></dt>
<dd>Nouvel utilitaire pour le démarrage des démons
FastCGI.</dd>
<dt><program>htcacheclean</program></dt>
<dd>Les URLs présentes dans le cache peuvent maintenant être
affichées, accompagnées éventuellement de leurs métadonnées.</dd>
<dd>Possibilité de supprimer explicitement des URLs individuelles
présentes dans le cache.</dd>
<dd>Les tailles de fichiers peuvent maintenant être arrondies au
multiple de la taille de bloc donnée, les limites de taille
collant de ce fait d'avantage à la taille réelle sur disque.</dd>
<dd>La taille du cache peut maintenant être limitée par le
nombre d'inodes, en plus de la possibilité de limitation par la
taille des fichiers.</dd>
<dt><program>rotatelogs</program></dt>
<dd>Possibilité de créer un lien vers le fichier journal
courant.</dd>
<dd>Possibilité d'invoquer un script personnalisé après la
rotation.</dd>
<dt><program>htpasswd</program>, <program>htdbm</program></dt>
<dd>Support de l'algorithme bcrypt (disponible à partir de la
version 2.4.4).
</dd>
</dl>
</section>
<section id="documentation">
<title>Documentation</title>
<dl>
<dt>mod_rewrite</dt>
<dd>La documentation du module <module>mod_rewrite</module> a
été réorganisée et presque entièrement réécrite en mettant
l'accent sur les exemples et l'utilisation courante, ainsi que
sur l'incitation à utiliser d'autres solutions lorsque cela
s'avère plus approprié. Le document <a href="rewrite/">Rewrite
Guide</a> constitue maintenant une section de premier niveau ;
il est mieux organisé et contient beaucoup plus de détails.</dd>
<dt>mod_ssl</dt>
<dd>La documentation du module <module>mod_ssl</module> a été
grandement améliorée, avec plus d'exemples et un niveau "Bien
démarrer" qui s'ajoutent aux détails techniques déjà présents
dans la précédente documentation.</dd>
<dt>Caching Guide</dt>
<dd>Le <a href="caching.html">Guide de la mise en cache</a> a
été réécrit afin de bien faire la différence entre les
fonctionnalités de mise en cache de la RFC2616 HTTP/1.1 fournies
par le module <module>mod_cache</module>, et la mise en cache
générique de type clé/valeur fournie par l'interface <a
href="socache.html">socache</a>, mais aussi pour couvrir la mise
en cache spécialisée fournie par des mécanismes tels que ceux du
module <module>mod_file_cache</module>.</dd>
</dl>
</section>
<section id="developer">
<title>Modifications concernant les développeur de modules</title>
<dl>
<dt>Ajout de code pour la vérification de la configuration</dt>
<dd>Une nouvelle fonction, <code>check_config</code>, a été ajoutée et
s'exécute entre les fonctions <code>pre_config</code> et
<code>open_logs</code>. Elle s'exécute aussi avant la fonction
<code>test_config</code> si l'option <code>-t</code> est passée au
démon <program>httpd</program>. La fonction <code>check_config</code>
permet aux modules de vérifier l'interdépendance des valeurs des
directives de configuration et d'ajuster ces valeurs, alors que les
messages du serveur peuvent encore être affichés sur la console.
L'utilisateur est ainsi averti des erreurs de configuration avant que la
fonction du noyau <code>open_logs</code> ne redirige les sorties de la
console vers le journal des erreurs.</dd>
<dt>Ajout d'un analyseur syntaxique d'expressions</dt>
<dd>Nous disposons à présent d'un analyseur générique d'expressions, dont l'API
est décrite dans <var>ap_expr.h</var>. Il s'agit d'une adaptation de
l'analyseur qu'on trouvait auparavant dans <module>mod_ssl</module>.</dd>
<dt>Conteneurs de logique d'autorisation</dt>
<dd>Afin de fournir une logique d'autorisation avancée via des
directives telles que <directive module="mod_authz_core"
type="section">RequireAll</directive>, les modules d'autorisation
s'enregistrent maintenant en tant
que fournisseur par le biais de ap_register_auth_provider().</dd>
<dt>Interface de mise en cache des petits objets</dt>
<dd>Le fichier d'en-têtes <var>ap_socache.h</var> fournit une
interface à base de fournisseur pour la mise en cache des petits
objets de données, en s'inspirant de
l'implémentation précédente
du cache de session par <module>mod_ssl</module>. Sont supportés
actuellement : les fournisseurs utilisant un tampon cyclique en
mémoire partagée, les fichiers dbm sur disque, et les caches
distribués de type memcache.</dd>
<dt>Ajout du point d'ancrage Cache Status</dt>
<dd>Le module <module>mod_cache</module> inclut maintenant un
nouveau point d'ancrage, <code>cache_status</code>, qui est appelé
lorsque la décision à propos de la mise en cache est connue. Il en
existe une implémentation par défaut qui ajoute les en-têtes
optionnels <code>X-Cache</code> et <code>X-Cache-Detail</code> à
la réponse.</dd>
</dl>
<p>La documentation du développeur contient une <a
href="developer/new_api_2_4.html">liste détaillée des modifications
de l'API</a>.</p>
</section>
</manualpage>
|