From b2c3aae3707da6883c12db9bcf5c66f33e99167c Mon Sep 17 00:00:00 2001
From: Lucien Gentis Strict
. L'option Unsafe
a été ajoutée pour pouvoir restaurer les anciens
comportements nécessaires aux anciens modules et applications et aux agents
- utilisateurs personnalisés considérés comme obsolètes. Ces règles
+ utilisateurs personnalisés considérés comme obsolètes.
Ces règles s'appliquant avant le traitement de la requête, elles doivent, pour être prises en compte, être définies au niveau global ou dans la première section par défaut du serveur virtuel qui correspond à la requête considérée, par interface IP/port et non par nom.
+Cette directive accepte trois paramètres issus de la liste suivante, ceux + qui ne sont pas spécifiés prenant leur valeur par défaut :
+ +Avant l'introduction de cette directive, les interpréteurs de requêtes du
serveur HTTP Apache toléraient un grand nombre de formats en entrée qui
n'étaient pas forcément conformes au protocole.
directive, toutes les règles de grammaire de la spécification doivent être
respectées dans le mode d'opérations par défaut Strict
.
Il est fortement déconseillé aux utilisateurs d'utiliser le mode
d'opération Unsafe
, ou
UnsafeWhitespace
, en particulier pour les déploiements de
@@ -1417,15 +1426,17 @@ Apache
nécessite une interface, les utilisateurs ne doivent utiliser les options de
type UnSafe qu'en cas de nécessité et uniquement au sein d'un serveur
virtuel bien spécifique et sur un réseau privé.
La consultation des messages enregistrés dans le journal
- info
, pourra
- vous aider à identifier de telles requêtes non conformes ainsi que leur
- provenance. Les utilisateurs devront accorder une attention particulière aux
- messages d'erreur de type 400 dans le journal access pour détecter les
- requêtes apparemment valides mais rejetées.
La section de la RFC 7231
§4.1 "Request Methods" "Overview" indique que les serveurs doivent
@@ -1435,11 +1446,26 @@ Apache
possibilité de limiter les méthodes utilisées via l'option
RegisteredMethods
en enregistrant toute méthode non standard
via la directive Unsafe
est utilisée. L'option
+ si l'option Unsafe
est utilisée.
L'option
RegisteredMethods
ne doit pas être utilisée
pour les serveurs mandataires car ces derniers ne connaissent pas les
méthodes supportées par les serveurs originaux.
La section de la RFC 2616
§19.6 "Compatibility With Previous Versions" encouragait les
@@ -1450,6 +1476,23 @@ Apache
A. A ce titre, l'option Require1.0
permet à l'utilisateur
d'inhiber le comportement induit par l'option par défaut
Allow0.9
.
La consultation des messages enregistrés dans le journal
+ info
, pourra
+ vous aider à identifier de telles requêtes non conformes ainsi que leur
+ provenance. Les utilisateurs devront accorder une attention particulière aux
+ messages d'erreur de type 400 dans le journal access pour détecter les
+ requêtes apparemment valides mais rejetées.
La mise en cache conforme à la RFC 2616 fournit un mécanisme - permettant de vérifier si un contenu expiré ou dépassé est encore à +
La mise en cache conforme à la RFC 2616 fournit un mécanisme + permettant de vérifier si un contenu expiré ou dépassé est encore à jour, et peut apporter un gain de performances significatif si le - serveur original supporte les requêtes - conditionnelles en prenant en compte l'en-tête de requête + serveur original supporte les requêtes + conditionnelles en prenant en compte l'en-tête de requête HTTP If-None-Match. - Le contenu n'est ainsi régénéré que lorsqu'il a été modifié, et non - lorsqu'il a expiré.
+ Le contenu n'est ainsi régénéré que lorsqu'il a été modifié, et non + lorsqu'il a expiré. -En tant que filtre,
En tant que filtre,
Dans la configuration par défaut,
Dans la configuration par défaut,
Lorsque le gestionnaire rapide est désactivé via la directive +
Lorsque le gestionnaire rapide est désactivé via la directive
Dans le mode de fonctionnement normal,
La RFC 2616 permet au cache de renvoyer des données périmées
- pendant que l'entrée périmée correspondante est mise à jour depuis
+ envoyés par un client dans une requête, ou par un serveur dans une
+ réponse. Dans des circonstances exceptionnelles,
+
La RFC 2616 permet au cache de renvoyer des données périmées
+ pendant que l'entrée périmée correspondante est mise à jour depuis
le serveur original, et
Pour de plus amples détails, une description, et des exemples, +
Pour de plus amples détails, une description, et des exemples, reportez-vous au Guide de la mise en cache.
Lorsqu'une entrée du cache est périmée,
Un court mais non négligeable laps de temps existe entre le moment
- où l'entrée du cache est périmée, et le moment où elle est mise à
- jour. Sur un serveur fortement chargé, un certain nombre de requêtes
+ Lorsqu'une entrée du cache est périmée, Un court mais non négligeable laps de temps existe entre le moment
+ où l'entrée du cache est périmée, et le moment où elle est mise à
+ jour. Sur un serveur fortement chargé, un certain nombre de requêtes
peut arriver pendant ce laps de temps, et provoquer une
- tempête de requêtes susceptibles de saturer le
- processus d'arrière-plan de manière soudaine et imprédictible. Pour contenir cette tempête, on peut utiliser la directive
- Pour contenir cette tempête, on peut utiliser la directive
+ Lorsqu'une entité est mise en cache pour la première fois, un
- verrou est créé pour cette entité jusqu'à ce que la réponse ait été
- entièrement mise en cache. Pendant la durée de vie du verrou, le
- cache va empêcher une seconde tentative de mise en cache de la même
- entité. Bien que cela ne suffise pas à contenir la tempête de
- requêtes, toute tentative de mettre en cache la même entité
- plusieurs fois simultanément est stoppée.
+ Lorsqu'une entité est mise en cache pour la première fois, un
+ verrou est créé pour cette entité jusqu'à ce que la réponse ait été
+ entièrement mise en cache. Pendant la durée de vie du verrou, le
+ cache va empêcher une seconde tentative de mise en cache de la même
+ entité. Bien que cela ne suffise pas à contenir la tempête de
+ requêtes, toute tentative de mettre en cache la même entité
+ plusieurs fois simultanément est stoppée.
Lorsqu'une entrée atteint la limite de sa durée de vie, et
- devient par conséquent périmée, un verrou est créé pour cette entité
- jusqu'à ce que la réponse ait été soit confirmée comme encore
- valide, soit remplacée par le processus d'arrière-plan. Pendant la
- durée de vie du verrou, une seconde requête entrante va provoquer le
- renvoi de la donnée périmée, et la tempête de requêtes sera
+ Lorsqu'une entrée atteint la limite de sa durée de vie, et
+ devient par conséquent périmée, un verrou est créé pour cette entité
+ jusqu'à ce que la réponse ait été soit confirmée comme encore
+ valide, soit remplacée par le processus d'arrière-plan. Pendant la
+ durée de vie du verrou, une seconde requête entrante va provoquer le
+ renvoi de la donnée périmée, et la tempête de requêtes sera
contenue. Les verrous ne sont utilisés qu'à titre
- indicatif pour enjoindre le cache à être plus coopératif
- avec les serveurs d'arrière-plan, et il est possible de passer outre
- si nécessaire. Si le client envoie une requête contenant un en-tête
- Cache-Control imposant un nouveau téléchargement de l'entité, tout
- verrou éventuel sera ignoré, la requête du client sera honorée
- immédiatement, et l'entrée du cache mise à jour. Comme mécanisme de sécurité supplémentaire, la durée de vie
+ Les verrous ne sont utilisés qu'à titre
+ indicatif pour enjoindre le cache à être plus coopératif
+ avec les serveurs d'arrière-plan, et il est possible de passer outre
+ si nécessaire. Si le client envoie une requête contenant un en-tête
+ Cache-Control imposant un nouveau téléchargement de l'entité, tout
+ verrou éventuel sera ignoré, la requête du client sera honorée
+ immédiatement, et l'entrée du cache mise à jour. Comme mécanisme de sécurité supplémentaire, la durée de vie
maximale des verrous est configurable. Lorsque cette limite est
- atteinte, le verrou est supprimé et une autre requête peut alors en
- créer un nouveau. Cette durée de vie peut être définie via la
+ atteinte, le verrou est supprimé et une autre requête peut alors en
+ créer un nouveau. Cette durée de vie peut être définie via la
directive Dans son mode de fonctionnement par défaut, le cache s'exécute sous
- la forme d'un gestionnaire rapide, court-circuitant la majorité des
+ Dans son mode de fonctionnement par défaut, le cache s'exécute sous
+ la forme d'un gestionnaire rapide, court-circuitant la majorité des
traitements du serveur et fournissant ainsi une mise en cache
- possédant les plus hautes performances disponibles. Dans ce mode, le cache s'incruste devant le
- serveur, comme si un mandataire de mise en cache indépendant RFC 2616
- était placé devant ce dernier.
Bien que que ce mode offre les meilleures performances, les administrateurs peuvent souhaiter, dans certaines circonstances, - effectuer des traitements sur la requête après que cette dernière ait - été mise en cache, comme ajouter du contenu personnalisé à la page + effectuer des traitements sur la requête après que cette dernière ait + été mise en cache, comme ajouter du contenu personnalisé à la page mise en cache, ou appliquer des restrictions d'autorisations au - contenu. Pour y parvenir, l'administrateur sera alors souvent forcé de - placer des serveurs mandataires inverses indépendants soit derrière, + contenu. Pour y parvenir, l'administrateur sera alors souvent forcé de + placer des serveurs mandataires inverses indépendants soit derrière, soit devant le serveur de mise en cache.
-Pour résoudre ce problème, la directive
Pour résoudre ce problème, la directive
En outre, l'administrateur peut éventuellement spécifier le - point précis dans la chaîne de filtrage où devra +
En outre, l'administrateur peut éventuellement spécifier le + point précis dans la chaîne de filtrage où devra intervenir la mise en cache en ajoutant le filtre - CACHE à la chaîne de filtrage en sortie.
+ CACHE à la chaîne de filtrage en sortie.Par exemple, pour mettre en cache le contenu avant d'appliquer une - compression à la réponse, placez le filtre CACHE + compression à la réponse, placez le filtre CACHE avant le filtre DEFLATE comme dans l'exemple suivant :
@@ -305,12 +305,12 @@ CacheQuickHandler off AddOutputFilterByType CACHE;DEFLATE text/plain -Une autre possibilité consiste à mettre en cache le contenu avant
- l'ajout de contenu personnalisé via
Une autre possibilité consiste à mettre en cache le contenu avant
+ l'ajout de contenu personnalisé via
Vous pouvez insérer le filtre CACHE en tout point
- de la chaîne de filtrage. Dans l'exemple suivant, le contenu est mis
- en cache après avoir été interprété par
Vous pouvez insérer le filtre CACHE en tout point
+ de la chaîne de filtrage. Dans l'exemple suivant, le contenu est mis
+ en cache après avoir été interprété par
Lorsque
En fonction de la décision prise, l'information est aussi écrite - dans l'environnement du sous-processus sous une des quatre clés +
En fonction de la décision prise, l'information est aussi écrite + dans l'environnement du sous-processus sous une des quatre clés suivantes :
Il est alors possible d'envisager une journalisation conditionnelle - du traitement des requêtes par rapport au cache comme dans l'exemple + du traitement des requêtes par rapport au cache comme dans l'exemple suivant :
Pour les concepteurs de modules, une accroche (hook) nommée +
Pour les concepteurs de modules, une accroche (hook) nommée cache_status est disponible et permet aux modules de - répondre aux résultats de la vérification du cache ci-dessus de manière - personnalisée.
+ répondre aux résultats de la vérification du cache ci-dessus de manière + personnalisée.La directive disk
, socache
comme valeur du paramètre type
+ utilise le gestionnaire de stockage basé sur le cache d'objets
+ partagés implémenté par socache
comme valeur du paramètre type
de cache.
Si les différentes directives
Si les différentes directives
En fonctionnement du type serveur mandataire direct, chaîne - URL doit au moins débuter par un protocole pour lequel la mise - en cache doit être activée.
+En fonctionnement du type serveur mandataire direct, chaîne + URL doit au moins débuter par un protocole pour lequel la mise + en cache doit être activée.
Un nom d'hôte commençant par un caractère "*" - correspondra à tout nom d'hôte se terminant par le suffixe - considéré. Un nom d'hôte commençant par un caractère - "." correspondra à tout nom d'hôte contenant le - composant de nom de domaine qui suit ce caractère.
+Un nom d'hôte commençant par un caractère "*" + correspondra à tout nom d'hôte se terminant par le suffixe + considéré. Un nom d'hôte commençant par un caractère + "." correspondra à tout nom d'hôte contenant le + composant de nom de domaine qui suit ce caractère.
Depuis la version 2.2.12, on peut définir la variable
- d'environnement no-cache
pour une définition plus fine
- des ressources à mettre en cache.
Depuis la version 2.2.12, on peut définir la variable
+ d'environnement no-cache
pour une définition plus fine
+ des ressources à mettre en cache.
La directive
Si la directive se trouve à l'intérieur d'une section
Si la directive se trouve à l'intérieur d'une section
Avec les versions 2.2.12 et ultérieures, on peut définir la
- variable d'environnement no-cache
pour une définition
- plus fine des ressources à mettre en cache.
Avec les versions 2.2.12 et ultérieures, on peut définir la
+ variable d'environnement no-cache
pour une définition
+ plus fine des ressources à mettre en cache.
La directive
La directive
La directive
Normalement, les documents qui ne possèdent pas de date de
- dernière modification ne sont pas mis en cache. Dans certaines
- circonstances, la date de dernière modification est supprimée (au
- cours des traitements liés à
Normalement, les documents qui ne possèdent pas de date de
+ dernière modification ne sont pas mis en cache. Dans certaines
+ circonstances, la date de dernière modification est supprimée (au
+ cours des traitements liés à
Normalement, les requêtes contenant des en-têtes tels que +
Normalement, les requêtes contenant des en-têtes tels que
Cache-Control: no-cache ou Pragma: no-cache ne sont pas servies
depuis le cache. La directive
Normalement, les requêtes comportant une chaîne de paramètres - sont mises en cache séparément si leurs chaînes de paramètres - diffèrent. - En accord avec la RFC 2616/13.9, cette mise en cache n'est effectuée - séparément que si une date d'expiration est spécifiée. La directive +
Normalement, les requêtes comportant une chaîne de paramètres
+ sont mises en cache séparément si leurs chaînes de paramètres
+ diffèrent.
+ En accord avec la RFC 2616/13.9, cette mise en cache n'est effectuée
+ séparément que si une date d'expiration est spécifiée. La directive
Si un document ne possède pas de date d'expiration, elle peut - être calculée en fonction de la date de dernière modification, si +
Si un document ne possède pas de date d'expiration, elle peut
+ être calculée en fonction de la date de dernière modification, si
elle existe. La directive
- délai-expiration = durée-depuis-date-dernière-modification *
+
- Par exemple, si la dernière modification du document date de 10
- heures, et si facteur a pour valeur 0.1, le délai
+ Par exemple, si la dernière modification du document date de 10
+ heures, et si facteur a pour valeur 0.1, le délai
d'expiration sera de 10*0.1 = 1 heure. Si l'heure courante est
- 3:00pm, la date d'expiration calculée sera 3:00pm + 1 heure =
+ 3:00pm, la date d'expiration calculée sera 3:00pm + 1 heure =
4:00pm.
- Si le délai d'expiration est supérieur à celui spécifié par la
+ Si le délai d'expiration est supérieur à celui spécifié par la
directive délai-expiration = durée-depuis-date-dernière-modification *
facteur
- date-expiration = date-courante + délai-expiration
+ date-expiration = date-courante + délai-expiration
En accord avec la RFC 2616, les en-têtes HTTP hop-by-hop ne sont - pas stockés dans le cache. Les en-têtes HTTP suivant sont des - en-têtes hop-by-hop, et en tant que tels, ne sont en aucun - cas stockés dans le cache, quelle que soit la définition de la +
En accord avec la RFC 2616, les en-têtes HTTP hop-by-hop ne sont
+ pas stockés dans le cache. Les en-têtes HTTP suivant sont des
+ en-têtes hop-by-hop, et en tant que tels, ne sont en aucun
+ cas stockés dans le cache, quelle que soit la définition de la
directive
La directive
La directive None
.
Expires
, ne sont pas stockés suite à la définition
+ Si des en-têtes nécessaires à la bonne gestion du cache, comme
+ Expires
, ne sont pas stockés suite à la définition
d'une directive /une-application/image.gif;jsessionid=123456789
/une-application/image.gif?PHPSESSIONID=12345678
Ceci implique la mise en cache des ressources séparément pour - chaque session, ce qui n'est en général pas souhaité. La directive +
Ceci implique la mise en cache des ressources séparément pour
+ chaque session, ce qui n'est en général pas souhaité. La directive
CacheIgnoreURLSessionIdentifiers None
vide la liste
- des identifiants ignorés. Autrement, chaque identifiant spécifié est
- ajouté à la liste.
Depuis la version 2.2.4, les réponses qui sont arrivées à - expiration ne sont pas stockées dans le cache. La directive +
Depuis la version 2.2.4, les réponses qui sont arrivées à
+ expiration ne sont pas stockées dans le cache. La directive
Normalement, les réponse comportant un en-tête Cache-Control: - dont la valeur est private ne seront pas stockées dans le cache. La +
Normalement, les réponse comportant un en-tête Cache-Control:
+ dont la valeur est private ne seront pas stockées dans le cache. La
directive
Normalement, les requêtes ou réponses dont l'en-tête - Cache-Control: a pour valeur no-store ne sont pas stockées dans le +
Normalement, les requêtes ou réponses dont l'en-tête
+ Cache-Control: a pour valeur no-store ne sont pas stockées dans le
cache. La directive
La directive
La configuration minimale pour activer le verrouillage contre les - tempêtes de requêtes dans le répertoire par - défaut des fichiers run-time est + tempêtes de requêtes dans le répertoire par + défaut des fichiers run-time est la suivante :
Les verrous sont des fichiers vides qui n'existent que pour les - URLs présentes dont le contenu est périmé ; ils consomment dont bien + URLs présentes dont le contenu est périmé ; ils consomment dont bien moins de ressources que le cache disque traditionnel.
La directive
La directive
Un verrou plus ancien que cette valeur exprimée en secondes sera - ignoré, et la prochaine requête entrante sera alors en mesure de - recréer le verrou. Ce mécanisme permet d'éviter les mises à jour trop - longues initiées par des clients lents.
+Un verrou plus ancien que cette valeur exprimée en secondes sera + ignoré, et la prochaine requête entrante sera alors en mesure de + recréer le verrou. Ce mécanisme permet d'éviter les mises à jour trop + longues initiées par des clients lents.
La directive
Avec la configuration par défaut, le cache agit au cours de la - phase du gestionnaire rapide. Cette phase court-circuite la majorité - des traitements du serveur, et constitue le mode d'opération le plus +
Avec la configuration par défaut, le cache agit au cours de la + phase du gestionnaire rapide. Cette phase court-circuite la majorité + des traitements du serveur, et constitue le mode d'opération le plus performant pour un serveur typique. Le cache - s'incruste devant le serveur, et la majorité des - traitements du serveur est court-circuitée.
+ s'incruste devant le serveur, et la majorité des + traitements du serveur est court-circuitée. -Lorsque cette directive est définie à off, le cache agit comme un - gestionnaire normal, et est concerné par toutes les phases de - traitement d'une requête. Bien que ce mode soit moins performant que - le mode par défaut, il permet d'utiliser le cache dans les cas où un - traitement complet de la requête est nécessaire, comme par exemple - lorsque le contenu est soumis à autorisation.
+Lorsque cette directive est définie à off, le cache agit comme un + gestionnaire normal, et est concerné par toutes les phases de + traitement d'une requête. Bien que ce mode soit moins performant que + le mode par défaut, il permet d'utiliser le cache dans les cas où un + traitement complet de la requête est nécessaire, comme par exemple + lorsque le contenu est soumis à autorisation.
Lorsque le gestionnaire rapide est désactivé, l'administrateur a - aussi la possibilité de choisir avec précision le point de la chaîne - de filtrage où la mise en cache sera effectuée, en utilisant le +
Lorsque le gestionnaire rapide est désactivé, l'administrateur a + aussi la possibilité de choisir avec précision le point de la chaîne + de filtrage où la mise en cache sera effectuée, en utilisant le filtre CACHE.
Si le filtre CACHE est spécifié plusieurs fois, c'est la dernière +
Si le filtre CACHE est spécifié plusieurs fois, c'est la dernière instance qui sera prise en compte.
Lorsque la directive
Lorsque la directive
Ceci peut s'avérer utile au cours du développement de services
- RESTful mis en cache pour obtenir des informations supplémentaires à
- propos des décisions vis à vis du cache écrites dans les en-têtes de
- la réponse. Il est ainsi possible de vérifier si
- Cache-Control
et d'autres en-têtes ont été correctement
- utilisés par le service et le client.
Si le gestionnaire normal est utilisé, cette directive peut se + module="mod_cache">CacheDetailHeader est définie à on, un + en-tête X-Cache-Detail est ajouté à la réponse et + contient les raisons précises d'une décision d'utilisation du cache + vis à vis de cette dernière.
+ +Ceci peut s'avérer utile au cours du développement de services
+ RESTful mis en cache pour obtenir des informations supplémentaires à
+ propos des décisions vis à vis du cache écrites dans les en-têtes de
+ la réponse. Il est ainsi possible de vérifier si
+ Cache-Control
et d'autres en-têtes ont été correctement
+ utilisés par le service et le client.
Si le gestionnaire normal est utilisé, cette directive peut se
situer dans une section
Lorsque la directive
Lorsque la directive
Ce module a été conçu dans le but d'améliorer les performances - des sites web s'appuyant sur des connexions en arrière-plan vers des +
Ce module a été conçu dans le but d'améliorer les performances + des sites web s'appuyant sur des connexions en arrière-plan vers des serveurs LDAP. Il ajoute aux fonctions fournies par les - bibliothèques standards LDAP la conservation des connexions LDAP - ainsi qu'un cache LDAP partagé en mémoire.
+ bibliothèques standards LDAP la conservation des connexions LDAP + ainsi qu'un cache LDAP partagé en mémoire. -Pour activer ce module, le support LDAP doit être compilé dans +
Pour activer ce module, le support LDAP doit être compilé dans
apr-util. Pour ce faire, on ajoute l'option --with-ldap
au script
Le support SSL/TLS est conditionné par le kit de développement
- LDAP qui a été lié à
Ce qui suit est un exemple de configuration qui utilise
-
Les connexions LDAP sont conservées de requête en requête. Ceci - permet de rester connecté et identifié au serveur LDAP, ce dernier - étant ainsi prêt pour la prochaine requête, sans avoir à se - déconnecter, reconnecter et réidentifier. Le gain en performances - est similaire à celui des connexions persistantes (keepalives) +
Les connexions LDAP sont conservées de requête en requête. Ceci + permet de rester connecté et identifié au serveur LDAP, ce dernier + étant ainsi prêt pour la prochaine requête, sans avoir à se + déconnecter, reconnecter et réidentifier. Le gain en performances + est similaire à celui des connexions persistantes (keepalives) HTTP.
-Sur un serveur très sollicité, il est possible que de nombreuses - requêtes tentent d'accéder simultanément à la même connexion au - serveur LDAP. Lorsqu'une connexion LDAP est utilisée, Apache en crée - une deuxième en parallèle à la première, ce qui permet d'éviter que - le système de conservation des connexions ne devienne un goulot - d'étranglement.
+Sur un serveur très sollicité, il est possible que de nombreuses + requêtes tentent d'accéder simultanément à la même connexion au + serveur LDAP. Lorsqu'une connexion LDAP est utilisée, Apache en crée + une deuxième en parallèle à la première, ce qui permet d'éviter que + le système de conservation des connexions ne devienne un goulot + d'étranglement.
-Il n'est pas nécessaire d'activer explicitement la conservation +
Il n'est pas nécessaire d'activer explicitement la conservation des connexions dans la configuration d'Apache. Tout module utilisant - le module ldap pour accéder aux services LDAP partagera le jeu de + le module ldap pour accéder aux services LDAP partagera le jeu de connexions.
-Les connexions LDAP peuvent garder la trace des données - d'identification du client ldap utilisées pour l'identification - auprès du serveur LDAP. Ces données peuvent être fournies aux +
Les connexions LDAP peuvent garder la trace des données
+ d'identification du client ldap utilisées pour l'identification
+ auprès du serveur LDAP. Ces données peuvent être fournies aux
serveurs LDAP qui ne permettent pas les connexions anonymes au cours
lors des tentatives de sauts vers des serveurs alternatifs. Pour
- contrôler cette fonctionnalité, voir les directives
Pour améliorer les performances,
Pour améliorer les performances,
Les processus de recherche et d'identification sont les - opérations LDAP les plus consommatrices en temps, en particulier + opérations LDAP les plus consommatrices en temps, en particulier si l'annuaire est de grande taille. Le cache de recherche/identification met en cache toutes les recherches qui - ont abouti à une identification positive. Les résultats négatifs - (c'est à dire les recherches sans succès, ou les recherches qui - n'ont pas abouti à une identification positive) ne sont pas mis en - cache. La raison de cette décision réside dans le fait que les - connexions avec des données d'identification invalides ne - représentent qu'un faible pourcentage du nombre total de + ont abouti à une identification positive. Les résultats négatifs + (c'est à dire les recherches sans succès, ou les recherches qui + n'ont pas abouti à une identification positive) ne sont pas mis en + cache. La raison de cette décision réside dans le fait que les + connexions avec des données d'identification invalides ne + représentent qu'un faible pourcentage du nombre total de connexions, et ainsi, le fait de ne pas mettre en cache les - données d'identification invalides réduira d'autant la taille du + données d'identification invalides réduira d'autant la taille du cache.
Le cache de recherche/identification est contrôlé par les +
Le cache de recherche/identification est contrôlé par les
directives
Au cours des opérations de comparaison d'attributs et de noms
+ Au cours des opérations de comparaison d'attributs et de noms
distinctifs (DN),
Notez que, lorsque l'appartenance à un groupe est vérifiée, +
Notez que, lorsque l'appartenance à un groupe est vérifiée, toute comparaison de sous-groupes est mise en cache afin - d'accélérer les comparaisons de sous-groupes ultérieures.
+ d'accélérer les comparaisons de sous-groupes ultérieures. -Le comportement de ces deux caches est contrôlé par les +
Le comportement de ces deux caches est contrôlé par les
directives
ldap-status
, et on peut utiliser les directives
- suivantes pour accéder aux informations du cache de
+ suivantes pour accéder aux informations du cache de
En se connectant à l'URL +
En se connectant à l'URL
http://nom-serveur/infos-cache
, l'administrateur peut
obtenir un rapport sur le statut de chaque cache qu'utilise
La possibilité de créer des connexions SSL et TLS avec un serveur
- LDAP est définie par les directives La possibilité de créer des connexions SSL et TLS avec un serveur
+ LDAP est définie par les directives
Les différents SDKs LDAP disposent de nombreuses méthodes pour - définir et gérer les certificats des clients et des autorités de +
Les différents SDKs LDAP disposent de nombreuses méthodes pour + définir et gérer les certificats des clients et des autorités de certification (CA).
Si vous avez l'intention d'utiliser SSL ou TLS, lisez cette - section ATTENTIVEMENT de façon à bien comprendre les différences de - configurations entre les différents SDKs LDAP supportés.
+ section ATTENTIVEMENT de façon à bien comprendre les différences de + configurations entre les différents SDKs LDAP supportés.Les certificat de CA sont enregistrés dans un fichier nommé +
Les certificat de CA sont enregistrés dans un fichier nommé cert7.db. Le SDK ne dialoguera avec aucun serveur LDAP dont le - certificat n'a pas été signé par une CA spécifiée dans ce + certificat n'a pas été signé par une CA spécifiée dans ce fichier. Si des certificats clients sont requis, un fichier - key3.db ainsi qu'un mot de passe optionnels peuvent être - spécifiés. On peut aussi spécifier le fichier secmod si - nécessaire. Ces fichiers sont du même format que celui utilisé + key3.db ainsi qu'un mot de passe optionnels peuvent être + spécifiés. On peut aussi spécifier le fichier secmod si + nécessaire. Ces fichiers sont du même format que celui utilisé par les navigateurs web Netscape Communicator ou Mozilla. Le - moyen le plus simple pour obtenir ces fichiers consiste à les + moyen le plus simple pour obtenir ces fichiers consiste à les extraire de l'installation de votre navigateur.
-Les certificats clients sont spécifiés pour chaque connexion +
Les certificats clients sont spécifiés pour chaque connexion en utilisant la directive LDAPTrustedClientCert et en se - référant au certificat "nickname". On peut éventuellement - spécifier un mot de passe pour déverrouiller la clé privée du + référant au certificat "nickname". On peut éventuellement + spécifier un mot de passe pour déverrouiller la clé privée du certificat.
Le SDK supporte seulement SSL. Toute tentative d'utilisation de STARTTLS engendrera une erreur lors des tentatives de - contacter le serveur LDAP pendant l'exécution.
+ contacter le serveur LDAP pendant l'exécution.Un ou plusieurs certificats de CA doivent être spécifiés pour +
Un ou plusieurs certificats de CA doivent être spécifiés pour que le SDK Novell fonctionne correctement. Ces certificats - peuvent être spécifiés sous forme de fichiers au format binaire - DER ou codés en Base64 (PEM).
+ peuvent être spécifiés sous forme de fichiers au format binaire + DER ou codés en Base64 (PEM). -Note: Les certificats clients sont spécifiés globalement - plutôt qu'à chaque connexion, et doivent être spécifiés à l'aide - de la directive LDAPTrustedGlobalCert comme ci-dessous. Définir +
Note: Les certificats clients sont spécifiés globalement + plutôt qu'à chaque connexion, et doivent être spécifiés à l'aide + de la directive LDAPTrustedGlobalCert comme ci-dessous. Définir des certificats clients via la directive LDAPTrustedClientCert - engendrera une erreur qui sera journalisée, au moment de la + engendrera une erreur qui sera journalisée, au moment de la tentative de connexion avec le serveur LDAP.
-Le SDK supporte SSL et STARTTLS, le choix étant défini par le - paramètre de la directive LDAPTrustedMode. Si une URL de type - ldaps:// est spécifiée, le mode SSL est forcé, et l'emporte sur +
Le SDK supporte SSL et STARTTLS, le choix étant défini par le + paramètre de la directive LDAPTrustedMode. Si une URL de type + ldaps:// est spécifiée, le mode SSL est forcé, et l'emporte sur cette directive.
Un ou plusieurs certificats de CA doivent être spécifiés pour +
Un ou plusieurs certificats de CA doivent être spécifiés pour que le SDK OpenLDAP fonctionne correctement. Ces certificats - peuvent être spécifiés sous forme de fichiers au format binaire - DER ou codés en Base64 (PEM).
+ peuvent être spécifiés sous forme de fichiers au format binaire + DER ou codés en Base64 (PEM). -Les certificats clients sont spécifiés pour chaque connexion - à l'aide de la directive LDAPTrustedClientCert.
+Les certificats clients sont spécifiés pour chaque connexion + à l'aide de la directive LDAPTrustedClientCert.
-La documentation du SDK prétend que SSL et STARTTLS sont - supportés ; cependant, STARTTLS semble ne pas fonctionner avec - toutes les versions du SDK. Le mode SSL/TLS peut être défini en - utilisant le paramètre de la directive LDAPTrustedMode. Si une +
La documentation du SDK prétend que SSL et STARTTLS sont + supportés ; cependant, STARTTLS semble ne pas fonctionner avec + toutes les versions du SDK. Le mode SSL/TLS peut être défini en + utilisant le paramètre de la directive LDAPTrustedMode. Si une URL de type - ldaps:// est spécifiée, le mode SSL est forcé. La documentation - OpenLDAP indique que le support SSL (ldaps://) tend à être - remplacé par TLS, bien que le mode SSL fonctionne toujours.
+ ldaps:// est spécifiée, le mode SSL est forcé. La documentation + OpenLDAP indique que le support SSL (ldaps://) tend à être + remplacé par TLS, bien que le mode SSL fonctionne toujours.SSL/TLS pour les bibliothèques LDAP propres à Solaris n'est - pas encore supporté. Si nécessaire, installez et utilisez plutôt - les bibliothèques OpenLDAP.
+SSL/TLS pour les bibliothèques LDAP propres à Solaris n'est + pas encore supporté. Si nécessaire, installez et utilisez plutôt + les bibliothèques OpenLDAP.
La configuration des certificats SSL/TLS pour les - bibliothèques LDAP propres à Microsoft s'effectue à l'intérieur - du registre système, et aucune directive de configuration n'est + bibliothèques LDAP propres à Microsoft s'effectue à l'intérieur + du registre système, et aucune directive de configuration n'est requise.
-SSL et TLS sont tous deux supportés en utilisant des URLs de - type ldaps://, ou en définissant la directive LDAPTrustedMode à +
SSL et TLS sont tous deux supportés en utilisant des URLs de + type ldaps://, ou en définissant la directive LDAPTrustedMode à cet effet.
-Note: L'état du support des certificats clients n'est pas +
Note: L'état du support des certificats clients n'est pas encore connu pour ce SDK.
Cette directive permet de spécifier le nombre d'octets à allouer - pour le cache en mémoire partagée. La valeur par - défaut est 500kb. - Si elle est définie à 0, le cache en mémoire partagée ne sera pas - utilisé et chaque processus HTTPD va créer son propre cache.
+Cette directive permet de spécifier le nombre d'octets à allouer + pour le cache en mémoire partagée. La valeur par + défaut est 500kb. + Si elle est définie à 0, le cache en mémoire partagée ne sera pas + utilisé et chaque processus HTTPD va créer son propre cache.
Cette directive permet de spécifier le chemin du - fichier du cache en mémoire partagée. Si elle n'est pas définie, la - mémoire partagée anonyme sera utilisée si la plate-forme la +
Cette directive permet de spécifier le chemin du + fichier du cache en mémoire partagée. Si elle n'est pas définie, la + mémoire partagée anonyme sera utilisée si la plate-forme la supporte.
Si chemin-fichier n'est pas un chemin absolu, il sera
- relatif au répertoire défini via la directive
Cette directive permet de spécifier la taille maximale du cache - LDAP primaire. Ce cache contient les résultats de - recherche/identification positifs. Définissez-la à 0 pour désactiver - la mise en cache des résultats de recherche/identification positifs. - La taille par défaut est de 1024 recherches en cache.
+Cette directive permet de spécifier la taille maximale du cache + LDAP primaire. Ce cache contient les résultats de + recherche/identification positifs. Définissez-la à 0 pour désactiver + la mise en cache des résultats de recherche/identification positifs. + La taille par défaut est de 1024 recherches en cache.
Cette directive permet de spécifier la durée (en secondes) - pendant laquelle une entrée du cache de recherche/identification - reste valide. La valeur par défaut est de 600 secondes (10 +
Cette directive permet de spécifier la durée (en secondes) + pendant laquelle une entrée du cache de recherche/identification + reste valide. La valeur par défaut est de 600 secondes (10 minutes).
Cette directive permet de spécifier le nombre d'entrées que +
Cette directive permet de spécifier le nombre d'entrées que
Cette directive permet de spécifier la durée (en secondes) - pendant laquelle les entrées du cache d'opérations restent valides. - La valeur par défaut est de 600 secondes.
+Cette directive permet de spécifier la durée (en secondes) + pendant laquelle les entrées du cache d'opérations restent valides. + La valeur par défaut est de 600 secondes.
Si elle est activée par la directive
Si elle est activée par la directive
L'ajustement de ce paramètre n'est pas commun à tous les SDKs LDAP.
+L'ajustement de ce paramètre n'est pas commun à tous les SDKs LDAP.
Certains serveurs LDAP partagent leur annuaire en plusieurs - domaines et utilisent le système des redirections (referrals) pour - aiguiller un client lorsque les limites d'un domaine doivent être - franchies. Ce processus est similaire à une redirection HTTP. Les - bibliothèques client LDAP ne respectent pas forcément ces - redirections par défaut. Cette directive permet de configurer + domaines et utilisent le système des redirections (referrals) pour + aiguiller un client lorsque les limites d'un domaine doivent être + franchies. Ce processus est similaire à une redirection HTTP. Les + bibliothèques client LDAP ne respectent pas forcément ces + redirections par défaut. Cette directive permet de configurer explicitement les redirections LDAP dans le SDK sous-jacent.
La directive
Avec la valeur "on", la prise en compte des redirections
- LDAP par le SDK sous-jacent est activée, la directive
+ LDAP par le SDK sous-jacent est activée, la directive
Avec la valeur "off", la prise en compte des redirections - LDAP par le SDK sous-jacent est complètement désactivée.
Avec la valeur "default", la prise en compte des redirections
- LDAP par le SDK sous-jacent n'est pas modifiée, la directive
+ LDAP par le SDK sous-jacent n'est pas modifiée, la directive
La directive
Si la directive
Si la directive
Il est possible d'effectuer une autre tentative de connexion en - cas d'erreurs LDAP du type délai dépassé ou connexion refusée.
+ cas d'erreurs LDAP du type délai dépassé ou connexion refusée.Suite à des échecs de connexion au serveur LDAP, le serveur
- tentera de se connecter autant de fois qu'indiqué par la directive
-
Suite à des échecs de connexion au serveur LDAP, le serveur
+ tentera de se connecter autant de fois qu'indiqué par la directive
+
Il est possible d'effectuer une autre tentative de connexion en - cas d'erreurs LDAP du type délai dépassé ou connexion refusée.
+ cas d'erreurs LDAP du type délai dépassé ou connexion refusée.Cette directive permet de spécifier le chemin et le nom du +
Cette directive permet de spécifier le chemin et le nom du
fichier contenant les certificats des CA de confiance et/ou les
- certificats clients du système global que
Cette directive permet de spécifier le chemin et le nom de - fichier ou l'alias d'un certificat client par connexion utilisé lors - de l'établissement d'une connexion SSL ou TLS avec un serveur LDAP. - Les sections directory ou location peuvent posséder leurs propres +
Cette directive permet de spécifier le chemin et le nom de + fichier ou l'alias d'un certificat client par connexion utilisé lors + de l'établissement d'une connexion SSL ou TLS avec un serveur LDAP. + Les sections directory ou location peuvent posséder leurs propres configurations de certificats clients. Certains SDK LDAP (en particulier Novell) ne supportent pas les certificats clients par connexion, et renvoient une erreur lors de la connexion au serveur - LDAP si vous tenter d'utiliser cette directive (Utilisez à la place + LDAP si vous tenter d'utiliser cette directive (Utilisez à la place la directive LDAPTrustedGlobalCert pour les certificats clients sous Novell - Voir plus haut le guide des certificats SSL/TLS pour plus - de détails). Le paramètre type spécifie le type du certificat en - cours de définition, en fonction du SDK LDAP utilisé. Les types - supportés sont :
+ de détails). Le paramètre type spécifie le type du certificat en + cours de définition, en fonction du SDK LDAP utilisé. Les types + supportés sont :Les modes suivants sont supportés :
+Les modes suivants sont supportés :
Les modes ci-dessus ne sont pas supportés par tous les SDK LDAP. - Un message d'erreur sera généré à l'exécution si un mode n'est pas - supporté, et la connexion au serveur LDAP échouera. +
Les modes ci-dessus ne sont pas supportés par tous les SDK LDAP. + Un message d'erreur sera généré à l'exécution si un mode n'est pas + supporté, et la connexion au serveur LDAP échouera.
-Si une URL de type ldaps:// est spécifiée, le mode est forcé à - SSL et la définition de LDAPTrustedMode est ignorée.
+Si une URL de type ldaps:// est spécifiée, le mode est forcé à + SSL et la définition de LDAPTrustedMode est ignorée.
Cette directive configure l'option LDAP_OPT_NETWORK_TIMEOUT (ou - LDAP_OPT_CONNECT_TIMEOUT) dans la bibliothèque client LDAP - sous-jacente, si elle est disponible. Cette valeur représente la - durée pendant laquelle la bibliothèque client LDAP va attendre que - le processus de connexion TCP au serveur LDAP soit achevé.
- -Si la connexion n'a pas réussi avant ce délai, une erreur sera
- renvoyée, ou la bibliothèque client LDAP tentera de se connecter à
- un second serveur LDAP, s'il en a été défini un (via une liste de
- noms d'hôtes séparés par des espaces dans la directive Si la connexion n'a pas réussi avant ce délai, une erreur sera
+ renvoyée, ou la bibliothèque client LDAP tentera de se connecter à
+ un second serveur LDAP, s'il en a été défini un (via une liste de
+ noms d'hôtes séparés par des espaces dans la directive La valeur par défaut est 10 secondes, si la bibliothèque client
- LDAP liée avec le serveur supporte l'option
+ La valeur par défaut est 10 secondes, si la bibliothèque client
+ LDAP liée avec le serveur supporte l'option
LDAP_OPT_NETWORK_TIMEOUT.
Cette directive permet de spécifier le délai d'attente pour les - opérations de recherche et d'identification, ainsi que l'option - LDAP_OPT_TIMEOUT dans la bibliothèque LDAP client sous-jacente, +
Cette directive permet de spécifier le délai d'attente pour les + opérations de recherche et d'identification, ainsi que l'option + LDAP_OPT_TIMEOUT dans la bibliothèque LDAP client sous-jacente, lorsqu'elle est disponible.
-Lorsque le délai est atteint, httpd va refaire un essai dans le - cas où une connexion existante a été silencieusement fermée par un +
Lorsque le délai est atteint, httpd va refaire un essai dans le + cas où une connexion existante a été silencieusement fermée par un pare-feu. Les performances seront cependant bien meilleures si le - pare-feu est configuré pour envoyer des paquets TCP RST au lieu de + pare-feu est configuré pour envoyer des paquets TCP RST au lieu de rejeter silencieusement les paquets.
Les délais pour les opérations de comparaison LDAP nécessitent un +
Les délais pour les opérations de comparaison LDAP nécessitent un SDK avec LDAP_OPT_TIMEOUT, comme OpenLDAP >= 2.4.4.
Cette directive permet de spécifier s'il faut forcer la - vérification d'un certificat de serveur lors de l'établissement +
Cette directive permet de spécifier s'il faut forcer la + vérification d'un certificat de serveur lors de l'établissement d'une connexion SSL avec un serveur LDAP.
Cette directive permet de spécifier la durée maximale, en +
Cette directive permet de spécifier la durée maximale, en secondes, pendant laquelle une connexion LDAP du jeu de connexions - peut demeurer inactive, mais rester quand-même disponible pour une - utilisation éventuelle. Le jeu de connexions est nettoyé au fur et à - mesure des besoins, de manière non asynchrone.
+ peut demeurer inactive, mais rester quand-même disponible pour une + utilisation éventuelle. Le jeu de connexions est nettoyé au fur et à + mesure des besoins, de manière non asynchrone. -Si cette directive est définie à 0, les connexions ne sont jamais - sauvegardées dans le jeu de connexions d'arrière-plan. Avec la - valeur par défaut -1, ou toute autre valeur négative, les connexions - peuvent être réutilisées sans limite de durée.
+Si cette directive est définie à 0, les connexions ne sont jamais + sauvegardées dans le jeu de connexions d'arrière-plan. Avec la + valeur par défaut -1, ou toute autre valeur négative, les connexions + peuvent être réutilisées sans limite de durée.
-Dans le but d'améliorer les performances, le temps de référence - qu'utilise cette directive correspond au moment où la connexion LDAP - est enregistrée ou remise dans le jeu de connexions, et non au - moment du dernier échange réussi avec le serveur LDAP.
+Dans le but d'améliorer les performances, le temps de référence + qu'utilise cette directive correspond au moment où la connexion LDAP + est enregistrée ou remise dans le jeu de connexions, et non au + moment du dernier échange réussi avec le serveur LDAP.
La version 2.4.10 a introduit de nouvelles mesures permettant - d'éviter une augmentation excessive du temps de référence due à des - correspondances positives dans le cache ou des requêtes lentes. A - cet effet, le temps de référence n'est pas réactualisé si aucune - connexion LDAP d'arrière-plan n'est requise ; d'autre part, le temps - de référence se base sur le moment où la requête HTTP est reçue, et - non sur le moment où la requête a été traitée.
- -Cette durée de vie s'exprime par défaut en secondes, mais - il est possible d'utiliser d'autres unités en ajoutant un suffixe : + d'éviter une augmentation excessive du temps de référence due à des + correspondances positives dans le cache ou des requêtes lentes. A + cet effet, le temps de référence n'est pas réactualisé si aucune + connexion LDAP d'arrière-plan n'est requise ; d'autre part, le temps + de référence se base sur le moment où la requête HTTP est reçue, et + non sur le moment où la requête a été traitée.
+ +Cette durée de vie s'exprime par défaut en secondes, mais + il est possible d'utiliser d'autres unités en ajoutant un suffixe : millisecondes (ms), minutes (min), ou heures (h).
Active les options de débogage LDAP spécifiques au SDK, qui - entraînent en général une journalisation d'informations verbeuses du +
Active les options de débogage LDAP spécifiques au SDK, qui + entraînent en général une journalisation d'informations verbeuses du SDK LDAP dans le journal principal des erreurs d'Apache. Les messages de traces en provenance du SDK LDAP fournissent des - informations très détaillées qui peuvent s'avérer utiles lors du - débogage des problèmes de connexion avec des serveurs LDAP - d'arrière-plan.
+ informations très détaillées qui peuvent s'avérer utiles lors du + débogage des problèmes de connexion avec des serveurs LDAP + d'arrière-plan.Cette option n'est configurable que lorsque le serveur HTTP
- Apache est lié avec un SDK LDAP qui implémente
+ Apache est lié avec un SDK LDAP qui implémente
LDAP_OPT_DEBUG
ou LDAP_OPT_DEBUG_LEVEL
,
comme OpenLDAP (une valeur de 7 est verbeuse) ou Tivoli Directory
Server (une valeur de 65535 est verbeuse).
Les informations journalisées peuvent contenir des données - d'authentification en clair utilisées ou validées lors de - l'authentification LDAP ; vous devez donc prendre soin de protéger +
Les informations journalisées peuvent contenir des données + d'authentification en clair utilisées ou validées lors de + l'authentification LDAP ; vous devez donc prendre soin de protéger et de purger le journal des erreurs lorsque cette directive est - utilisée.
+ utilisée.Le choix d'une fonction de création d'empreinte détermine la manière dont une empreinte est créée à partir d'une unité de données. SSL supporte -- cgit v1.2.3