Vue d'ensemble des nouvelles fonctionnalit�s de la version 2.4 du
serveur HTTP Apache
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
Nouvelles fonctionnalit�s
de la version 2.2.

Voir aussi
- Modules multiprocessus (MPMs) chargeables � l'ex�cution
- Plusieurs MPMs peuvent maintenant �tre compil�s en tant que modules
chargeables. Le choix du MPM � utiliser s'effectue
� l'ex�cution via la directive
LoadModule
.
- MPM Event
- Le MPM Event n'en est plus au stade exp�rimental et est
maintenant 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�.
- 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
.
- Sections de configuration au niveau requ�te
- Les sections
If
,
<ElseIf>
et
<Else>
permettent de d�finir une configuration en fonction de crit�res
li�s � la requ�te.
- Interpr�teur d'expressions � usage g�n�ral
- Un nouvel interpr�teur d'expressions permet de sp�cifier des
conditions complexes via des directives �
syntaxe commune comme
SetEnvIfExpr
, RewriteCond
, Header
,
<If>
, etc...
- KeepAliveTimeout en millisecondes
- Il est maintenant possible de d�finir la directive
KeepAliveTimeout
en millisecondes.
- Directive NameVirtualHost
- Cette directive n'est plus n�cessaire et est maintenant obsol�te.
- Directives autoris�es dans les fichiers
.htaccess
- La nouvelle directive
AllowOverrideList
permet de contr�ler de
mani�re plus pr�cise la liste des directives autoris�es dans les
fichiers .htaccess
.
- Variables dans les fichiers de configuration
- La directive
Define
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.
- Diminution de la m�moire utilis�e
- 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.
mod_proxy_fcgi
- Mise � disposition du protocole FastCGI pour
mod_proxy
.
mod_proxy_scgi
- Mise � disposition du protocole SCGI pour
mod_proxy
.
mod_proxy_express
- Ajoute �
mod_proxy
la configuration dynamique
de mandataires inverses en masse.
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_heartmonitor
,
mod_lbmethod_heartbeat
- Permet �
mod_proxy_balancer
de r�partir la
charge en fonction du nombre de connexions actives sur les
serveurs d'arri�re-plan.
mod_proxy_html
- 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.
mod_sed
- Une am�lioration de
mod_substitute
qui permet
d'�diter le corps de la r�ponse avec toute la puissance de la
commande sed.
mod_auth_form
- Impl�mente une authentification � base de formulaire.
mod_session
- Permet de conserver les donn�es de sessions des clients sous
forme de cookies ou dans une base de donn�es.
mod_allowmethods
- Permet de restreindre l'utilisation de
certaines m�thodes HTTP sans interf�rer avec l'authentification et
l'autorisation.
mod_lua
- Embarque le langage Lua dans
httpd pour la configuration et les fonctions logiques courantes
(Exp�rimental).
mod_log_debug
- Permet d'introduire une journalisation personnalis�e �
diff�rentes phases du traitement de la requ�te.
mod_buffer
- Fournit un tampon pour les piles des filtres en entr�e et en
sortie.
mod_data
- Convertit un corps de r�ponse en URL de type donn�es RFC2397.
mod_ratelimit
- Permet de limiter la bande passante pour certains
clients.
mod_request
- Fournit des filtres permettant de g�rer et de mettre �
disposition les corps des requ�tes HTTP.
mod_reflector
- Permet de renvoyer comme r�ponse le corps de la requ�te via la
pile du filtre de sortie.
mod_slotmem_shm
- Met � disposition un fournisseur de m�moire partag�e � base de
slots (du style tableau de bord).
mod_xml2enc
- Anciennement module tiers, il supporte l'internationalisation
dans les modules de filtrage bas�s sur libxml2 (support du
markup)
mod_macro
(disponible � partir de la version 2.4.5)
- Permet d'utiliser des macros au sein des fichiers de
configuration.
mod_proxy_wstunnel
(disponible � partir de la version 2.4.5)
- Support des tunnels web-socket.
mod_authnz_fcgi
(disponible � partir de la version 2.4.10)
- Permet aux applications d'autorisation FastCGI d'authentifier
et/ou autoriser les clients.
mod_http2
(disponible � partir de la version 2.4.17)
- Support de la couche transport HTTP/2.
mod_proxy_hcheck
(disponible � partir de la version 2.4.21)
- Support d'un bilan de sant� dynamique ind�pendant pour les serveurs
d'arri�re-plan mandat�s distants.
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.
- En outre,
mod_ssl
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.
- Enfin,
mod_ssl
peut maintenant �tre configur� pour
que celui-ci partage les donn�es de session SSL entre les serveurs
via memcached.
- Le support des cl�s EC a �t� ajout� � celui des cl�s RSA et
DSA.
- Support de TLS-SRP (disponible � partir de la version 2.4.4).
mod_proxy
- La directive
ProxyPass
est maintenant configur�e
de mani�re 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.
- Il est maintenant possible de configurer l'adresse source dans
les requ�tes mandat�es.
- Support des sockets de type Unix vers le serveur
d'arri�re-plan (disponible � partir de la version 2.4.7).
mod_proxy_balancer
- 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).
- Configuration � l'ex�cution d'un sous-ensemble de param�tres
de r�partition de charge.
- 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.
- Les r�glages du r�partiteur de charge peuvent �tre rendus
persistants apr�s red�marrage.
mod_cache
- Le filtre CACHE du module
mod_cache
peut �tre
ins�r� � un certain point de la cha�ne de filtrage pour contr�ler
plus finement la mise en 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 renvoyer 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�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).
mod_authz_core
Conteneurs de logique d'autorisation
- La directive
Require
et les directives de
conteneurs associ�es, comme <RequireAll>
, permettent de d�finir une
logique d'autorisation avanc�e.
mod_rewrite
- La directive
RewriteRule
dispose maintenant
des drapeaux [QSD]
(Query String Discard) et
[END]
qui permettent de simplifier les sc�narios de
r��criture courants.
- Possibilit� d'utiliser des expressions bool�ennes complexes
dans la directive
RewriteCond
.
- Possibilit� d'utiliser des requ�tes SQL en tant que fonctions
dans la directive
RewriteMap
.
mod_ldap
, mod_authnz_ldap
mod_authnz_ldap
ajoute le support des
groupes imbriqu�s.
mod_ldap
apporte les directives LDAPConnectionPoolTTL
et LDAPTimeout
, 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.
mod_ldap
propose la directive LDAPLibraryDebug
qui permet de
journaliser les informations de d�bogage fournies par la bo�te �
outils LDAP utilis�e.
mod_info
mod_info
est maintenant capable d'afficher la
configuration pr�interpr�t�e sur stdout au cours du d�marrage du
serveur.
mod_auth_basic
- Nouveau m�canisme g�n�rique permettant d'effectuer une
authentification basique (disponible � partir de la version 2.4.5).
fcgistarter
- Nouvel 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.
- Possibilit� de supprimer 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.
rotatelogs
- Possibilit� de cr�er un lien vers le fichier journal
courant.
- Possibilit� d'invoquer un script personnalis� apr�s la
rotation.
htpasswd
, htdbm
- Support de l'algorithme bcrypt (disponible � partir de la
version 2.4.4).
- mod_rewrite
- La documentation du module
mod_rewrite
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 Rewrite
Guide constitue maintenant une section de premier niveau ;
il est mieux organis� et contient beaucoup plus de d�tails.
- mod_ssl
- La documentation du module
mod_ssl
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.
- Caching Guide
- Le Guide de la mise en cache 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
mod_cache
, et la mise en cache
g�n�rique de type cl�/valeur fournie par l'interface socache, mais aussi pour couvrir la mise
en cache sp�cialis�e fournie par des m�canismes tels que ceux du
module mod_file_cache
.
- 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_ssl
.
- 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.