<-
Apache > Serveur HTTP > Documentation > Version 2.3

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.

top

Améliorations du noyau

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.
top

Nouveau modules

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).
top

Améliorations des modules

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.
top

Améliorations des programmes

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.
top

Modifications pour le développeur de modules

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.

Langues Disponibles:  en  |  fr