Vue d'ensemble des nouvelles fonctionnalités de la version 2.4 du
serveur HTTP Apache
Langues Disponibles: en |
fr
Ce document décrit certaines modifications majeures entre les versions
2.2 et 2.4 du serveur HTTP Apache. Pour les nouvelles fonctionnalités
ajoutées depuis la version 2.0, se référer au document
nouvelles fonctionnalités
de la version 2.2.

- KeepAliveTimeout en millisecondes
- La directive
KeepAliveTimeout
permet dorénavant de
préciser une durée de vie en millisecondes.
- MPMs chargeables
- On peut maintenant compiler plusieurs MPMs en tant que modules
chargeables. La configuration du MPM choisi s'effectue à
l'exécution.
- Configuration du niveau de journalisation (LogLevel) par
module et par répertoire
- La directive
LogLevel
peut maintenant être définie par module et par répertoire. Les
nouveaux niveaux trace1
à trace8
ont été
ajoutés au dessus du niveau de journalisation debug
.
- MPM Event
- Le MPM Event est sorti du mode expérimental pour être
pleinement supporté.
- Support du mode asynchrone
- Le support des lectures/écritures asynchrones pour les MPMs et
les plateformes qui l'implémentent a été amélioré.
- Sections de configuration au niveau de la requête
- Les sections <
If
>
permettent de définir une configuration en fonction de critères
liés à la requête.

mod_allowmethods
- Nouveau module permettant de restreindre l'utilisation de
certaines méthodes HTTP sans interférer avec l'authentification et
l'autorisation.
mod_buffer
- Fournit un tampon pour les piles des filtres en entrée et en
sortie.
mod_lua
- Embarque le langage Lua dans
httpd pour la configuration et les fonctions logiques courantes.
mod_proxy_fcgi
- Mise à disposition du protocole FastCGI pour
mod_proxy
.
mod_proxy_scgi
- Mise à disposition du protocole SCGI pour
mod_proxy
.
mod_ratelimit
- Permet de limiter le taux de bande passante pour certains
clients.
mod_reflector
- Permet de renvoyer comme réponse le corps de la requête via la
pile du filtre de sortie.
mod_remoteip
- 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.
mod_reqtimeout
- Définit le délai d'expiration et le taux de données minimum
pour la réception des requêtes.
mod_request
- Fournit des filtres permettant de gérer et de mettre à
disposition les corps des requêtes HTTP.
mod_slotmem_shm
- Met à disposition un fournisseur de mémoire partagée à base de
slots (du style tableau de bord).

mod_ssl
mod_ssl
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 lui-même.
mod_ssl
supporte aussi maintenant le lien
OCSP, par lequel le serveur obtient activement une vérification
OCSP de son certificat et la transmet au client durant la phase
de négociation de la connexion.
- On peut maintenant configurer
mod_ssl
pour
que celui-ci partage les données de session SSL entre les serveurs
via memcached.
mod_proxy
- La directive
ProxyPass
est maintenant configurée
de la manière la plus optimale dans les sections Location
ou LocationMatch
, et offre un gain de
performances important par rapport à la syntaxe traditionnelle à
deux paramètres lorsqu'elle est présente en grand nombre.
mod_proxy_balancer
- D'avantage de possibilités de modifier la configuration à
l'exécution des membres de groupes de répartition de charge via le
gestionnaire de répartition de charge.
- Le gestionnaire de répartition de charge permet d'ajouter des
membres de groupes de répartition de charge supplémentaires à
l'exécution.
- Configuration à l'exécution d'un sous-ensemble de paramètres
de répartition de charge.
mod_cache
mod_cache
peut maintenant mettre en cache des
requêtes HEAD.
- Chaque fois que cela est possible, les directives de
mod_cache
peuvent maintenant être définies au
niveau du répertoire, et non plus seulement au niveau du serveur
principal.
- 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.
mod_cache
peut maintenant servir du contenu
non mis à jour lorsqu'un serveur d'arrière-plan n'est pas
disponible (erreur 5xx).
mod_cache
peut maintenant insérer
HIT/MISS/REVALIDATE dans un en-tête X-Cache.
mod_include
- Support de l'attribut 'onerror' dans un élément 'include',
permettant de servir un message d'erreur personnalisé à la place
du message d'erreur par défaut.
mod_cgi
, mod_include
,
mod_isapi
, ...
- 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
en-têtes contenant des caractères invalides (comme les caractères
de soulignement) sont maintenant ignorés. Le document Les variables d'environnement dans Apache
présentent 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).
- Conteneurs de logique d'autorisation de
mod_authz_core
- La directive
Require
et les directives de
conteneurs associées, comme <RequireAll>
, permettent de définir une
logique d'autorisation avancée.

- fcgistarter
- Utilitaire pour le démarrage des démons FastCGI
- htcacheclean
- Les URLs présentes dans le cache peuvent maintenant être
affichées, accompagnées éventuellement de leurs métadonnées.
- Permet d'effacer explicitement des URLs individuelles
présentes dans le cache.
- 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.
- 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.

- Ajout de code pour la vérification de la configuration
- Une nouvelle fonction,
check_config
, a été ajoutée et
s'exécute entre les fonctions pre_config
et
open_logs
. Elle s'exécute aussi avant la fonction
test_config
si l'option -t
est passée au
démon httpd
. La fonction check_config
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 open_logs
ne redirige les sorties de la
console vers le journal des erreurs.
- Ajout d'un analyseur syntaxique d'expressions
- Nous disposons à présent d'un analyseur générique d'expressions, dont l'API
est décrite dans ap_expr.h. Il s'agit d'une adaptation de
l'analyseur qu'on trouvait auparavant dans
mod_include
.
- Conteneurs de logique d'autorisation
- Afin de fournir une logique d'autorisation avancée via des
directives telles que
<RequireAll>
, les modules d'autorisation
s'enregistrent maintenant en tant
que fournisseur par le biais de ap_register_auth_provider().
- Interface de mise en cache des petits objets
- Le fichier d'en-têtes ap_socache.h 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
mod_ssl
. 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.
- Ajout du point d'ancrage Cache Status
- Le module
mod_cache
inclut maintenant un
nouveau point d'ancrage, cache_status
, 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 X-Cache
et X-Cache-Detail
à
la réponse.
La documentation du développeur contient une liste détaillée des modifications
de l'API.