Apache HTTP Server Version 1.3
Vue d'ensemble des nouvelles fonctionnalités
Nouvelles fonctionnalités de la version 1.0
Les nouveautés de cette distribution offre une extension des fonctionnalités d'Apache (voir le fichier CHANGES
dans le répertoire source, qui contient des explications plus détaillées). Du fait d'une refonte assez significative du noyau, certains aspects quelque peu permissifs de la précédente version
d'Apache (et du démon NCSA) ont été resserrés dans Apache 1.0 - consultez la page notes sur la compatibilité si vous avez un problème avec la version 1.0.
- Extensions des API pour le serveur --- voir ci-dessous pour un bref rappel de la philosophie de base, ou consultez src/API.html pour une vue d'ensemble de l'état actuel. La plupart des fonctionnalités du serveur (y compris Includes, CGI, et la plupart des contrôles de formulaires ou d'accès) sont actuellement implémentées sous forme de modules conformes à l'organisation des API ; you can also do other neat stuff (nous avons inclus, par exemple, un module d'échantillons, qu'une personne de notre équipe utilise pour suivre les déplacements d'un utilisateur accédant à un site via Netscape, en utilisant le mécanisme de cookies Netscape. Les Modules peuvent aussi être inclus dynamiquement à l'aide du GNU DLD.
Les API ne sont pas encore totalement stabilisées (voir src/TODO pour les modifications possibles), mais tout ce qui a été réalisé jusqu'à présent reste facilement adaptable pourles futures versions --- après tout, nous avons certainement plus de modules à adapter que vous n'en aurez jamais !
- Nouveau modèle de processus - moins de "forks", nombre de fils illimité.
Nous avons constaté que de nombreux administrateurs utilisaient des valeurs "MaxServers" soit trop faibles, soit trop élevées, et "étranglaient" eux-mêmes leur serveur. Le modèle que nous avons adopté est toujours basé sur un nombre de processus le plus réduit et des processus de plus longue durée de vie possibles, mais plutôt que de spécifier un nombre de processus rémanents, le Webmaster spécifiera un nombre maximum exécutables, et un nombre minimum de processus exécutés (en réserve) - chaque deux secondes le processus père vérifie le nombre de processus "en réserve" et prend les décisions nécessaires en fonction. Ceci permettra de laisser le nombre de serveurs tournant en concurrence relativement faible tout en permettant de diminuer les "fork" à exécuter.
- <VirtualHost> (la directive de configuration de serveurs multi-sites) a été généralisée. Toute commande de srm.conf ou de httpd.conf peut désormais apparaître dans une section <Virtualhost>, à l'exception des quelques exceptions particulières suivantes : ServerType, UserId, GroupId, StartServers, MaxRequestsPerChild, BindAddress, PidFile, TypesConfig et ServerRoot.
- Supporte la négociation de langue à travers MultiViews
(suffixes *.fr, *.de, *.en), par les nouvelles commandes AddLanguage et LanguagePriority (code écrit par Florent Guillaume, guillaum@clipper.ens.fr).
- Une réorganisation et un "ménage" interne significatif. Les deux conséquences visibles de l'extérieur
sont que toutes les limites auparavant fixées par des procédures non totalement testées ont disparu, et d'autre part que le serveur est désormais plus exigeant en matière de syntaxe des fichiers de configuration (notemment, détectant et refusant toute commande ou argument exotique, et vérifiant les éventuelles mentions parasites en fin de ligne de commande).
- XBITHACK est une option d'exécution, qui peut être validée sélectivement répertoire par répertoire
--- l'option de compilation -DXBITHACK ne fait que changer l'état par défaut. La commande qui lui correspond est "XBitHack", qui peut apparaître partout où la directive "Options" peut l'être ; elle accepte un argument ---
"XBitHack Off" désactive cette fonctionnalité ; "XBitHack On" propose cette fonctionnalité dans sa version NCSA ; et "XBitHack Full" ajoute l'extension GXBIT en plus. (l'option de compilation -DXBITHACK force la valeur à "Full" par défaut ; autrement, le défaut est "Off").
- La directive peut TransferLog désigner un programme auquel seront transmis les entrées de trace,
symbolisant l'exécution d'une pseudo-commande unix du type "TransferLog | /var/www/my-perl-script -arg valu" --- Ceci permet, par exemple, de signaler au script de traitement, à l'aide des signaux SIGTERM/pause/SIGKILL, que des données en cours de traitement correspondent à des données d'une requête avortée à cause d'un redémarrage du serveur. NB le serveur compte sur le fait que le processus de traitement de la trace est opérationnel. Une défaillance majeure peut intervenir si ce processus vient à mourir.
- Module de trace paramétrable --- ceci remplace le code Common Log Format standard, en supportant une directive LogFormat qui vous permet de contrôler la forme des entrées de trace dans le TransferLog, et ajoute de nouvelles informations à la trace si vous le souhaitez (en
particulier, les champs Referer et User-Agent). EXPERIMENTAL.
Autres fonctionnalités d'Apache
Apache HTTP Server Version 1.3
Version française © Valery Fremaux / EISTI 1998