mirror of
https://github.com/apache/httpd.git
synced 2025-11-09 15:21:02 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1818604 13f79535-47bb-0310-9956-ffa450edef68
295 lines
12 KiB
Plaintext
295 lines
12 KiB
Plaintext
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
|
|
<!-- English Revision : 1673947 -->
|
|
<!-- French translation : Lucien GENTIS -->
|
|
<!-- $LastChangedRevision: 2015042601 $ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_firehose.xml.meta">
|
|
|
|
<name>mod_firehose</name>
|
|
<description>Multiplexage des entrées/sorties vers un fichier ou un pipe.</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_firehose.c</sourcefile>
|
|
<identifier>firehose_module</identifier>
|
|
|
|
<summary>
|
|
<p><code>mod_firehose</code> fournit un mécanisme permettant
|
|
d'enregistrer les données transmises entre le serveur httpd et le
|
|
client au niveau élémentaire de la connexion dans un fichier ou un
|
|
pipe, de façon à ce que les données puissent être analysées ou
|
|
rejouées ultérieurement par le serveur. Il s'apparente à un "tcpdump
|
|
pour httpd".</p>
|
|
|
|
<p>Les connexions sont enregistrées après décodage de la couche SSL,
|
|
et peuvent ainsi être utilisées dans le cadre d'une réquisition
|
|
légale.</p>
|
|
|
|
<p>L'utilitaire <program>firehose</program> permet en retour de
|
|
démultiplexer le flux enregistré dans des fichiers individuels pour
|
|
analyse ou rejeu via des outils tels que <code>netcat</code>.</p>
|
|
|
|
<note><title>AVERTISSEMENT</title>Ce module ignore tout mécanisme
|
|
invoqué au niveau de la requête pour rendre les données privées. Il
|
|
est donc de la responsabilité de l'administrateur de s'assurer que
|
|
les données privées ne seront pas compromises par son utilisation.
|
|
</note>
|
|
|
|
</summary>
|
|
<seealso><program>firehose</program></seealso>
|
|
|
|
<section id="enable">
|
|
<title>Activation de la "Lance à incendie" (Firehose)</title>
|
|
|
|
<p>Pour activer ce module, il doit être compilé et chargé via la
|
|
configuration de votre instance httpd courante, et les directives
|
|
ci-dessous permettent de sélectionner les données que vous souhaitez
|
|
enregistrer.</p>
|
|
|
|
<p>Il est possible d'enregistrer les données entrantes et sortantes
|
|
dans le même fichier, car la direction du flux est indiquée dans
|
|
chaque fragment.</p>
|
|
|
|
<p>Il est possible d'écrire vers des fichiers normaux ou des listes
|
|
fifos (pipes). Dans le cas des listes fifos, mod_firehose fait en
|
|
sorte que la taille des paquets ne dépasse pas la valeur de PIPE_BUF
|
|
afin de s'assurer que l'écriture de ces derniers s'effectue en une
|
|
seule fois.</p>
|
|
|
|
<p>Si une liste fifo sous forme de pipe doit être utilisée, pour que
|
|
cette dernière soit ouverte en écriture, certaines données doivent
|
|
en être extraites avant le démarrage de httpd. Si l'ouverture du
|
|
pipe échoue, mod_firehose ne sera pas activé, et le serveur sera
|
|
lancé normalement.</p>
|
|
|
|
<p>Par défaut, toute tentative d'écriture bloque le serveur. Si le
|
|
serveur a été compilé avec APR version 2.0 ou supérieure, et si le
|
|
paramètre "nonblock" a été spécifié, les écritures dans les fichiers
|
|
seront non blocantes, et tout dépassement de tampon entraînera la
|
|
perte des données de débogage. Dans ce cas, il est possible donner
|
|
la priorité à l'exécution du serveur sur l'enregistrement des
|
|
données firehose.</p>
|
|
|
|
</section>
|
|
|
|
<section id="format">
|
|
<title>Format du flux</title>
|
|
|
|
<p>En général, le serveur gère plusieurs connexions simultanément,
|
|
et de ce fait, les requêtes et les réponses doivent être
|
|
multiplexées avant d'être écrites dans le firehose.</p>
|
|
|
|
<p>Chaque fragment se présente sous la forme d'un texte en clair
|
|
de façon à ce qu'un firehose puisse être ouvert et inspecté par un
|
|
éditeur de texte standard. Il est aussi possible d'utiliser
|
|
l'utilitaire <program>firehose</program> pour démultiplexer le
|
|
firehose en requêtes ou connexions individuelles.</p>
|
|
|
|
<p>La taille maximale des fragments multiplexés est définie par la
|
|
variable PIPE_BUF. Elle correspond à la taille maximale d'un
|
|
élément que le système peut écrire. Si la taille des fragments
|
|
multiplexés reste en dessous de PIPE_BUF, le module garantit que les
|
|
contenus des différents fragments ne se recouperont pas. La valeur
|
|
de PIPE_BUF varie en fonction du système d'exploitation.</p>
|
|
|
|
<p>La BNF du format du fragment est la suivante :</p>
|
|
|
|
<pre>
|
|
stream = 0*(fragment)
|
|
|
|
fragment = header CRLF body CRLF
|
|
|
|
header = length SPC timestamp SPC ( request | response ) SPC uuid SPC count
|
|
|
|
length = <longueur de fragment sur 16 octets hexadécimaux>
|
|
timestamp = <temps depuis 1970 en microsecondes sur 16 octets hexadécimaux>
|
|
request = "<"
|
|
response = ">"
|
|
uuid = <uuid formaté de la connexion>
|
|
count = <numéro hexadécimal du fragment dans la connexion>
|
|
|
|
body = <contenu binaire du fragment>
|
|
|
|
SPC = <un espace>
|
|
CRLF = <un retour chariot suivi d'une nouvelle ligne>
|
|
</pre>
|
|
|
|
<p>Tous les fragments d'une connexion ou d'une requête partagent le
|
|
même UUID, selon que les connexions ou les requêtes sont
|
|
enregistrées ou non. Si les connexions sont enregistrées, plusieurs
|
|
requêtes peuvent apparaître dans la même connexion. Un fragment de
|
|
longueur nulle indique la fin de la connexion.</p>
|
|
|
|
<p>Certains fragments peuvent manquer ou être supprimés si le
|
|
processus qui les lit est trop lent. Si cela se produit, il y aura
|
|
des trous dans le comptage des connections. Un avertissement
|
|
indiquant l'UUID et le numéro du fragment supprimé sera enregistré
|
|
dans le journal des erreurs.</p>
|
|
|
|
<p>En cas de crash ou d'arrêt forcé du processus httpd, il est
|
|
possible que le fragment vide de terminaison n'apparaisse pas. Cela
|
|
peut aussi se produire si le processus qui lit les fragments n'est
|
|
pas assez rapide.</p>
|
|
|
|
</section>
|
|
|
|
<directivesynopsis>
|
|
|
|
<name>FirehoseConnectionInput</name>
|
|
<description>Capture le trafic entrant dans le serveur à chaque
|
|
connexion.</description>
|
|
<syntax>FirehoseConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
|
|
<default>none</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<compatibility>Disponible à partir de la version 2.5.0 du serveur HTTP
|
|
Apache.</compatibility>
|
|
|
|
<usage>
|
|
<p>Capture le trafic entrant dans le serveur à chaque connexion.
|
|
Plusieurs requêtes seront capturées pour la même connexion si les
|
|
connexions persistantes sont activées.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
FirehoseConnectionInput connection-input.firehose
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
|
|
<name>FirehoseConnectionOutput</name>
|
|
<description>Capture le trafic sortant du serveur à chaque connexion</description>
|
|
<syntax>FirehoseConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
|
|
<default>none</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<compatibility>Disponible à partir de la version 2.5.0 du serveur HTTP
|
|
Apache.</compatibility>
|
|
|
|
<usage>
|
|
<p>Capture le trafic sortant du serveur à chaque connexion.
|
|
Plusieurs requêtes seront capturées pour la même connexion si les
|
|
connexions persistantes sont activées.
|
|
</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
FirehoseConnectionOutput connection-output.firehose
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
|
|
<name>FirehoseRequestInput</name>
|
|
<description>Capture le trafic entrant dans le serveur à chaque requête</description>
|
|
<syntax>FirehoseRequestInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
|
|
<default>none</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<compatibility>Disponible à partir de la version 2.5.0 du serveur HTTP
|
|
Apache.</compatibility>
|
|
|
|
<usage>
|
|
<p>Capture le trafic entrant dans le serveur à chaque requête. Les
|
|
requêtes sont capturées séparément, que les connexions persistantes
|
|
soient activées ou non.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
FirehoseRequestInput request-input.firehose
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
|
|
<name>FirehoseRequestOutput</name>
|
|
<description>Capture le trafic sortant du serveur à chaque requête</description>
|
|
<syntax>FirehoseRequestOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
|
|
<default>none</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<compatibility>Disponible à partir de la version 2.5.0 du serveur HTTP
|
|
Apache.</compatibility>
|
|
|
|
<usage>
|
|
<p>Capture le trafic sortant du serveur à chaque requête. Les
|
|
requêtes sont capturées séparément, que les connexions persistantes
|
|
soient activées ou non.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
FirehoseRequestOutput request-output.firehose
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
|
|
<name>FirehoseProxyConnectionInput</name>
|
|
<description>Capture le trafic entrant dans mod_proxy</description>
|
|
<syntax>FirehoseProxyConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
|
|
<default>none</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<compatibility></compatibility>
|
|
|
|
<usage>
|
|
<p>Capture le trafic reçu par mod_proxy.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
FirehoseProxyConnectionInput proxy-input.firehose
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
|
|
<name>FirehoseProxyConnectionOutput</name>
|
|
<description>Capture le trafic envoyé par mod_proxy</description>
|
|
<syntax>FirehoseProxyConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
|
|
<default>none</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<compatibility>Disponible à partir de la version 2.5.0 du serveur HTTP
|
|
Apache.</compatibility>
|
|
|
|
<usage>
|
|
<p>Capture le trafic envoyé par mod_proxy.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
FirehoseProxyConnectionOutput proxy-output.firehose
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|