summaryrefslogtreecommitdiffstats
path: root/docs/manual/mod/mod_proxy_hcheck.html.fr
blob: db9199540a4bf4234d48d0f0fb94d9235f8891a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_proxy_hcheck - Serveur Apache HTTP Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.5</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_proxy_hcheck</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_hcheck.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy_hcheck.html" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Check up dynamique des membres du groupe de r�partition de charge
(�quipiers) pour <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur�de�Module:</a></th><td>proxy_hcheck_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier�Source:</a></th><td>mod_proxy_hcheck.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilit�:</a></th><td>Disponible � partir de la version 2.4.21 du serveur HTTP Apache</td></tr></table>
<h3>Sommaire</h3>

    <p>Ce module permet d'effectuer un check up dynamique des membres du groupe
    de r�partition de charge (�quipiers). Ce check up peut �tre activ� pour un
    ou plusieurs �quipiers et il est ind�pendant des requ�tes de mandataire
    inverse proprement dites.</p>

    <p>Pour fonctionner, ce module <em>n�cessite</em> le chargement pr�alable de
    <code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code>.</p>

<div class="note"><h3>Param�tres</h3>
  <p>Le m�canisme de check up est activ� via l'utilisation de param�tres
  suppl�mentaires de BalancerMember configur�s de mani�re standard via la
  directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> :</p>

  <p>Ce module d�finit un nouveau drapeau d'�tat pour BalancerMember :
  "<code>C</code>". Lorsque l'�quipier est mis hors service suite � un
  disfonctionnement d�termin� par le module de check up, ce drapeau est activ�
  et peut �tre lu (et modifi�) via le <code>balancer-manager</code>.</p>

    <table>
    <tr><th>Param�tre</th>
        <th>D�faut</th>
        <th>Description</th></tr>
    <tr><td>hcmethod</td>
        <td>None</td>
        <td>Aucun check up dynamique n'est effectu�. Les choix possibles sont :
        	<table>
        		<tr><th>Method</th><th>Description</th><th>Note</th></tr>
        		<tr><td>None</td><td>Aucun check up dynamique effectu�</td><td /></tr>
        		<tr><td>TCP</td><td>V�rifie qu'un socket vers le serveur
			d'arri�re-plan peut �tre cr�� ; par exemple "es-tu en
			�tat de fonctionner"</td><td /></tr>
        		<tr><td>OPTIONS</td><td>Envoie une requ�te <code>HTTP
			OPTIONS</code> au serveur d'arri�re-plan</td><td>*</td></tr>
        		<tr><td>HEAD</td><td>Envoie une requ�te <code>HTTP
			HEAD</code> au serveur d'arri�re-plan</td><td>*</td></tr>
        		<tr><td>GET</td><td>Envoie une requ�te <code>HTTP
			GET</code> au serveur d'arri�re-plan</td><td>*</td></tr>

				<tr><td colspan="3" /></tr>
				<tr><td colspan="3">*: si hcexpr n'est pas
				utilis�, un retour HTTP 2xx ou 3xx sera
				interpr�t� comme un passage avec succ�s du check
				up.</td></tr>
        	</table>
        </td></tr>
    <tr><td>hcpasses</td>
        <td>1</td>
        <td>Nombre de check up � passer avec succ�s avant de remettre en service
	l'�quipier</td></tr>
    <tr><td>hcfails</td>
        <td>1</td>
        <td>Nombre de check up �chou�s avant mettre hors service l'�quipier</td></tr>
    <tr><td>hcinterval</td>
        <td>30</td>
        <td>Intervalle entre deux check up en secondes (par d�faut effectu�
	toutes les 30 secondes). Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.</td></tr>
    <tr><td>hcuri</td>
        <td>&nbsp;</td>
        <td>URI suppl�mentaire � ajouter � l'URL de l'�quipier pour le check up.</td></tr>
    <tr><td>hctemplate</td>
        <td>&nbsp;</td>
        <td>Nom du mod�le cr�� via <code class="directive">ProxyHCTemplate</code> �
	utiliser pour d�finir les param�tres de check up de cet �quipier</td></tr>
    <tr><td>hcexpr</td>
        <td>&nbsp;</td>
        <td>Nom de l'expression cr��e via <code class="directive">ProxyHCExpr</code>
	utilis�e pour analyser les en-t�tes de la r�ponse du check up.<br />
            <em>Si ce param�tre est absent, un �tat HTTP de 2xx � 3xx est
	    interpr�t� comme un check up r�ussi.</em></td></tr>
    </table>
</div>

</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples d'utilisation</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#proxyhcexpr">ProxyHCExpr</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyhctemplate">ProxyHCTemplate</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyhctpsize">ProxyHCTPsize</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_proxy_hcheck">Probl�mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_proxy_hcheck">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
<li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Exemples d'utilisation</a></h2>

	
    <p>L'exemple suivant montre comment configurer le check up pour diff�rents
    serveurs d'arri�re-plan :</p>

	
	<pre class="prettyprint lang-config">ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}
ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}

&lt;Proxy balancer://foo&gt;
  BalancerMember http://www.example.com/  hcmethod=GET hcexpr=in_maint hcuri=/status.php
  BalancerMember http://www2.example.com/  hcmethod=HEAD hcexpr=ok234 hcinterval=10
  BalancerMember http://www3.example.com/ hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3
  BalancerMember http://www4.example.com/
&lt;/Proxy&gt;

ProxyPass "/" "balancer://foo"
ProxyPassReverse "/" "balancer://foo"</pre>


<p>Dans ce sc�nario, on teste l'�quipier <code>http://www.example.com/</code> en lui
envoyant une requ�te <code>GET /status.php</code> et en regardant si la r�ponse
contient la cha�ne <em>Under maintenance</em>. Si c'est le cas, le check up est
consid�r� comme ayant �chou� et l'�quipier est mis hors service. Ce check up
dynamique est effectu� toutes les 30 secondes, ce qui correspond � la valeur par
d�faut.</p>

<p>On teste l'�quipier <code>http://www2.example.com/</code> en lui envoyant
simplement une requ�te <code>HEAD</code> toutes les 10 secondes et en v�rifiant
que la r�ponse HTTP est bien un code d'�tat de 2xx, 3xx ou 4xx. On teste
l'�quipier <code>http://www3.example.com/</code>  en v�rifiant simplement toutes
les 5 secondes que le socket vers ce serveur est bien op�rationnel. Si ce
serveur est marqu� "hors service", il lui faudra 2 check up r�ussis pour �tre
r�activ� et participer � nouveau � la r�partition de charge. Si � ce moment-l�
il �choue � 3 check up successifs, il sera � nouveau mis hors service. Enfin,
l'�quipier <code>http://www4.example.com/</code> ne fait l'objet d'aucun check
up.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="proxyhcexpr" id="proxyhcexpr">Directive</a> <a name="ProxyHCExpr" id="ProxyHCExpr">ProxyHCExpr</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cr�e et nomme une expression conditionnelle � utiliser pour
d�terminer la sant� d'un serveur d'arri�re-plan en fonction de sa valeur.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHCExpr name {ap_expr expression}</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_hcheck</td></tr>
</table>
    <p>La directive <code class="directive">ProxyHCExpr</code> permet de cr�er et nommer
    une expression conditionnelle dont la valeur calcul�e en fonction des
    en-t�tes de la r�ponse du serveur d'arri�re-plan permettra d'�valuer la
    sant� de ce dernier. Cette expression nomm�e peut alors �tre assign�e aux
    serveurs d'arri�re-plan via le param�tre <code>hcexpr</code>.</p>

    <div class="example"><h3>ProxyHCExpr: interpr�te les r�ponses 2xx/3xx/4xx comme des
    check up r�ussis</h3><pre class="prettyprint lang-config">ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
ProxyPass "/apps"     "balancer://foo"

&lt;Proxy balancer://foo&gt;
  BalancerMember http://www2.example.com/  hcmethod=HEAD hcexpr=ok234 hcinterval=10
&lt;/Proxy&gt;</pre>
</div>

    <div class="note">
    L'<a href="../expr.html">expression</a> peut utiliser des accolades ("{}")
    comme d�limiteurs en plus des guillemets normaux.
    </div>

    <p>Si l'on utilise une m�thode de check up (par exemple <code>GET</code>)
    qui g�n�re un corps de r�ponse, ce corps peut lui-m�me �tre auscult� via
    <code>ap_expr</code> en utilisant la fonction associ�e aux expressions
    <code>hc()</code> sp�cifique � ce module.</p>

    <p>Dans l'exemple suivant, on envoie une requ�te <code>GET</code> au serveur
    d'arri�re-plan, et si le corps de la r�ponse contient la cha�ne <em>Under
    maintenance</em>, ce serveur d'arri�re-plan est mis hors service.</p>

    <div class="example"><h3>ProxyHCExpr: auscultation du corps de la r�ponse</h3><pre class="prettyprint lang-config">ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}
ProxyPass "/apps"     "balancer://foo"

&lt;Proxy balancer://foo&gt;
  BalancerMember http://www.example.com/ hcexpr=in_maint hcmethod=get hcuri=/status.php
&lt;/Proxy&gt;</pre>
</div>

    <p><em>NOTE:</em> Comme le corps de la r�ponse peut �tre assez grand, il est
    recommand� de privil�gier un check up bas� sur les codes d'�tat.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="proxyhctemplate" id="proxyhctemplate">Directive</a> <a name="ProxyHCTemplate" id="ProxyHCTemplate">ProxyHCTemplate</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cr�e et nomme un mod�le permettant de d�finir diff�rents
param�tres de check up</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHCTemplate name parameter=setting &lt;...&gt;</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_hcheck</td></tr>
</table>
    <p>La directive <code class="directive">ProxyHCTemplate</code> permet de cr�er et
    nommer un mod�le de param�tres de check up qui peut alors �tre assign� aux
    �quipiers via le param�tre <code>hctemplate</code></p>

    <div class="example"><h3>ProxyHCTemplate</h3><pre class="prettyprint lang-config">ProxyHCTemplate tcp5 hcmethod=tcp hcinterval=5
ProxyPass "/apps"     "balancer://foo"

&lt;Proxy balancer://foo&gt;
  BalancerMember http://www2.example.com/ hctemplate=tcp5
&lt;/Proxy&gt;</pre>
</div>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="proxyhctpsize" id="proxyhctpsize">Directive</a> <a name="ProxyHCTPsize" id="ProxyHCTPsize">ProxyHCTPsize</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D�finit la taille totale, pour l'ensemble du
serveur, du jeu de threads utilis� pour le check up des
�quipiers.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHCTPsize &lt;size&gt;</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_hcheck</td></tr>
</table>
    <p>Si Apache httpd et APR ont �t� compil�s avec le support des threads, le
    module de check up peut confier ce travail � un jeu de threads associ� au
    processus Watchdog, ce qui permet l'ex�cution des check up en parall�le. La
    directive <code class="directive">ProxyHCTPsize</code> permet de d�terminer la
    taille de ce jeu de threads. Une valeur de <code>0</code> signifie qu'aucun
    jeu de threads ne sera utilis�, et le check up des diff�rents �quipiers sera
    alors effectu� s�quentiellement. La taille par d�faut du jeu de threads est
    de 16.</p>

    <div class="example"><h3>ProxyHCTPsize</h3><pre class="prettyprint lang-config">ProxyHCTPsize 32</pre>
</div>


</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_hcheck.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy_hcheck.html" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy_hcheck.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else {
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>