Newer
Older
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
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?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 - Serveur Apache HTTP Version 2.4</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/directives.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.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_proxy</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_proxy.html" title="Franais"> fr </a> |
<a href="../ja/mod/mod_proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Serveur mandataire/passerelle multi-protocole</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">IdentificateurdeModule:</a></th><td>proxy_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">FichierSource:</a></th><td>mod_proxy.c</td></tr></table>
<h3>Sommaire</h3>
<div class="warning"><h3>Avertissement</h3>
<p>N'activez pas la fonctionnalit de mandataire avec la directive
<code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> avant
d'avoir <a href="#access">scuris votre serveur</a>. Les serveurs
mandataires ouverts sont dangereux pour votre rseau,
mais aussi pour l'Internet au sens large.</p>
</div>
<p><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> et ses modules associs implmentent
un mandataire/passerelle pour le serveur HTTP Apache, et supportent
de nombreux protocoles courants, ainsi que plusieurs algorithmes de
rpartition de charge. Le support de protocoles et d'algorithmes de
rpartition de charge supplmentaires peut tre assur par des
modules tiers.</p>
<p>Un jeu de modules chargs dans le serveur permet de fournir les
fonctionnalits souhaites. Ces modules peuvent tre inclus
statiquement la compilation, ou dynamiquement via la directive
<code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>. Ce jeu de module
doit comporter :</p>
<ul>
<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, qui fournit les fonctionnalits de
base d'un mandataire</li>
<li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> et un ou plusieurs modules
de rpartition, si la rpartition de charge doit tre mise en
oeuvre (Voir la documentation de
<code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> pour plus de dtails).</li>
<li>un ou plusieurs modules de types de mandataire, ou protocoles
:
<table class="bordered">
<tr><th>Protocole</th><th>Module</th></tr>
<tr><td>AJP13 (Protocole Apache JServe version
1.3)</td><td><code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code></td></tr>
<tr><td>CONNECT (pour
SSL)</td><td><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code></td></tr>
<tr><td>FastCGI</td><td><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></td></tr>
<tr><td>ftp</td><td><code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code></td></tr>
<tr><td>HTTP/0.9, HTTP/1.0, et
HTTP/1.1</td><td><code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code></td></tr>
<tr><td>SCGI</td><td><code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></td></tr>
<tr><td>WS and WSS (Web-sockets)</td><td><code class="module"><a href="../mod/mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></code></td></tr>
</table>
</li>
</ul>
<p>En outre, d'autres modules fournissent des fonctionnalits
tendues. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> et ses modules associs
fournissent la mise en cache. Les directives <code>SSLProxy*</code>
du module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> permettent de contacter des
serveurs distants en utilisant le protocole SSL/TLS. Ces modules
additionnels devront tre chargs et configurs pour pouvoir
disposer de ces fonctionnalits.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#forwardreverse">Mandataires directs et
mandataires/passerelles inverses</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples simples</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#handler">Accs via un gestionnaire</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#workers">Workers</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#access">Contrler l'accs votre
mandataire</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#startup">Ralentissement au dmarrage</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#intranet">Mandataire en Intranet</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#envsettings">Ajustements relatifs au
protocole</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#request-bodies">Corps de requtes</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#x-headers">En-ttes de requte du mandataire
inverse</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#balancergrowth">BalancerGrowth</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#balancerinherit">BalancerInherit</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#balancermember">BalancerMember</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#balancerpersist">BalancerPersist</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#noproxy">NoProxy</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxy"><Proxy></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyaddheaders">ProxyAddHeaders</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxybadheader">ProxyBadHeader</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyblock">ProxyBlock</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxydomain">ProxyDomain</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyerroroverride">ProxyErrorOverride</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyiobuffersize">ProxyIOBufferSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxymatch"><ProxyMatch></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxymaxforwards">ProxyMaxForwards</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypass">ProxyPass</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassinherit">ProxyPassInherit</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassinterpolateenv">ProxyPassInterpolateEnv</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassmatch">ProxyPassMatch</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassreverse">ProxyPassReverse</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassreversecookiedomain">ProxyPassReverseCookieDomain</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypassreversecookiepath">ProxyPassReverseCookiePath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxypreservehost">ProxyPreserveHost</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyremote">ProxyRemote</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyremotematch">ProxyRemoteMatch</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyrequests">ProxyRequests</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyset">ProxySet</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxysourceaddress">ProxySourceAddress</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxystatus">ProxyStatus</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxytimeout">ProxyTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxyvia">ProxyVia</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__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_proxy">Problmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_proxy">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></li>
<li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</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="forwardreverse" id="forwardreverse">Mandataires directs et
mandataires/passerelles inverses</a></h2>
<p>Le serveur HTTP Apache peut tre configur dans les deux modes mandataire
<dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nomm
mode <dfn>passerelle</dfn>).</p>
<p>Un <dfn>mandataire direct</dfn> standard est un serveur
intermdiaire qui s'intercale entre le client et le <em>serveur
demand</em>. Pour obtenir un contenu hberg par
le serveur demand, le client envoie une requte au
mandataire en nommant le serveur demand comme
cible. Le mandataire extrait alors le contenu depuis le
serveur demand et le renvoie enfin au client. Le client doit tre
configur de manire approprie pour pouvoir utiliser le mandataire
direct afin d'accder d'autres sites.</p>
<p>L'accs Internet depuis des clients situs derrire un
pare-feu est une utilisation typique du mandataire direct. Le
mandataire direct peut aussi utiliser la mise en cache (fournie
par <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) pour rduire la charge du
rseau.</p>
<p>La fonctionnalit de mandataire direct est active via la
directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>.
Comme les mandataires directs permettent aux clients d'accder
des sites quelconques via votre serveur et de dissimuler leur
vritable origine, il est indispensable de <a href="#access">scuriser votre serveur</a> de faon ce que seuls
les clients autoriss puissent accder votre serveur avant
d'activer la fonctionnalit de mandataire direct.</p>
<p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>),
quant lui, apparat au client comme un serveur web standard.
Aucune configuration particulire du client n'est ncessaire. Le
client adresse ses demandes de contenus ordinaires dans l'espace
de nommage du mandataire inverse. Ce dernier dcide alors o
envoyer ces requtes, et renvoie le contenu au client comme s'il
l'hbergeait lui-mme.</p>
<p>L'accs d'utilisateurs depuis Internet vers un serveur situ
derrire un pare-feu est une utilisation typique du mandataire
inverse. On peut aussi utiliser les mandataires inverses pour
mettre en oeuvre une rpartition de charge entre plusieurs
serveurs en arrire-plan, ou fournir un cache pour un serveur
d'arrire-plan plus lent. Les mandataires inverses peuvent aussi
tout simplement servir rassembler plusieurs serveurs dans le
mme espace de nommage d'URLs.</p>
<p>La fonctionnalit de mandataire inverse est active via la
directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou
le drapeau <code>[P]</code> de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Il n'est
<strong>pas</strong> ncessaire de dfinir <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> pour configurer
un mandataire inverse.</p>
</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 simples</a></h2>
<p>Les exemples ci-dessous illustrent de manire trs basique la
mise en oeuvre de la fonctionnalit de mandataire et ne sont l que
pour vous aider dmarrer. Reportez-vous la documentation de
chaque directive.</p>
<p>Si en outre, vous dsirez activer la mise en cache, consultez la
documentation de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
<div class="example"><h3>Mandataire inverse</h3><pre class="prettyprint lang-config">ProxyPass "/foo" "http://foo.example.com/bar"
ProxyPassReverse "/foo" "http://foo.example.com/bar"</pre>
</div>
<div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On
ProxyVia On
<Proxy "*">
Require host internal.example.com
</Proxy></pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="handler" id="handler">Accs via un gestionnaire</a></h2>
<p>Vous pouvez aussi forcer le traitement d'une requte en tant que
requte de mandataire inverse en crant un gestionnaire de transfert
appropri. Dans l'exemple suivant, toutes les requtes pour
des scripts PHP seront transmises au serveur FastCGI
spcifi via un mandat inverse :
</p>
<div class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config"><FilesMatch "\.php$">
# Les sockets Unix ncessitent une version 2.4.7 ou suprieure du
# serveur HTTP Apache
SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/"
</FilesMatch></pre>
</div>
<p>Cette fonctionnalit est disponible partir de la version
2.4.10 du serveur HTTP Apache.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="workers" id="workers">Workers</a></h2>
<p>Le mandataire gre la configuration et les paramtres de
communication des serveurs originaux au sein d'objets nomms
<dfn>workers</dfn>. Deux types de worker sont fournis : le worker
par dfaut du mandataire direct et le worker par dfaut du
mandataire inverse. Il est aussi possible de dfinir explicitement
des workers supplmentaires.</p>
<p>Les deux workers par dfaut possdent une configuration fige
et seront utiliss si aucun autre worker ne correspond la
requte. Ils ne rutilisent pas les connexions et n'utilisent pas les
connexions HTTP persistantes (Keep-Alive). En effet, les
connexions TCP vers le serveur original sont fermes et ouvertes
pour chaque requte.</p>
<p>Les workers dfinis explicitement sont identifis par leur URL.
Ils sont en gnral dfinis via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> lorsqu'on les
utilise dans le cadre d'un mandataire inverse :</p>
<div class="example"><pre class="prettyprint lang-config">ProxyPass "/example" "http://backend.example.com" connectiontimeout=5 timeout=30</pre>
</div>
<p>Cette directive va crer un worker associ l'URL du serveur
original <code>http://backend.example.com</code> qui utilisera les
valeurs de timeout donnes. Lorsqu'ils sont utiliss dans le cadre
d'un mandataire direct, les workers sont en gnral dfinis via la
directive <code class="directive"><a href="#proxyset">ProxySet</a></code>,</p>
<div class="example"><pre class="prettyprint lang-config">ProxySet "http://backend.example.com" connectiontimeout=5 timeout=30</pre>
</div>
<p>ou encore via les directives <code class="directive"><a href="#proxy">Proxy</a></code> et <code class="directive"><a href="#proxyset">ProxySet</a></code> :</p>
<pre class="prettyprint lang-config"><Proxy "http://backend.example.com">
ProxySet connectiontimeout=5 timeout=30
</Proxy></pre>
<p>L'utilisation de workers dfinis explicitement dans le mode
mandataire direct n'est pas trs courante, car les mandataires
directs communiquent en gnral avec de nombreux serveurs
originaux. La cration explicite de workers pour certains serveurs
originaux peut cependant s'avrer utile si ces serveurs sont
trs souvent sollicits. A leur niveau, les workers explicitement
dfinis ne possdent aucune notion de mandataire direct ou
inverse. Ils encapsulent un concept de communication commun avec
les serveurs originaux. Un worker cr via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour tre utilis dans le
cadre d'un mandataire inverse sera aussi utilis dans le cadre
d'un mandataire directe chaque fois que l'URL vers le serveur
original correspondra l'URL du worker, et vice versa.</p>
<p>L'URL qui identifie un worker correspond l'URL de son serveur
original, y compris un ventuel chemin donn :</p>
<pre class="prettyprint lang-config">ProxyPass "/examples" "http://backend.example.com/examples"
ProxyPass "/docs" "http://backend.example.com/docs"</pre>
<p>Dans cet exemple, deux workers diffrents sont dfinis, chacun
d'eux utilisant des configurations et jeux de connexions
spars.</p>
<div class="warning"><h3>Partage de workers</h3>
<p>Le partage de workers intervient lorsque les URLs des workers
s'entrecoupent, ce qui arrive lorsque l'URL d'un worker
correspond au dbut de l'URL d'un autre worker dfini plus loin
dans le fichier de configuration. Dans l'exemple suivant,</p>
<pre class="prettyprint lang-config">ProxyPass "/apps" "http://backend.example.com/" timeout=60
ProxyPass "/examples" "http://backend.example.com/examples" timeout=10</pre>
<p>le second worker n'est pas vraiment cr. C'est le premier
worker qui est en fait utilis. L'avantage de ceci rside dans
le fait qu'il n'existe qu'un seul jeu de connexions, ces
dernires tant donc rutilises plus souvent. Notez que tous
les attributs de configuration dfinis explicitement pour le
deuxime worker seront ignors, ce qui sera journalis en tant
qu'avertissement. Ainsi, dans l'exemple ci-dessus, la valeur de
timeout retenue pour l'URL <code>/exemples</code> sera
<code>60</code>, et non <code>10</code> !</p>
<p>Si vous voulez empcher le partage de workers, classez vos
dfinitions de workers selon la longueur des URLs, de la plus
longue la plus courte. Si au contraire vous voulez favoriser
ce partage, utilisez l'ordre de classement inverse. Voir aussi
l'avertissement propos de l'ordre de classement des directives
<code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
</div>
<p>Les workers dfinis explicitement sont de deux sortes :
<dfn>workers directs</dfn> et <dfn>workers de rpartition (de
charge)</dfn>. Ils supportent de nombreux attributs de
configuration importants dcrits dans la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Ces mmes attributs
peuvent aussi tre dfinis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p>
<p>Le jeu d'options disponibles pour un worker direct dpend du
protocole spcifi dans l'URL du serveur original. Les protocoles
disponibles comprennent <code>ajp</code>, <code>fcgi</code>,
<code>ftp</code>, <code>http</code> et <code>scgi</code>.</p>
<p>Les workers de rpartition sont des workers virtuels qui
utilisent les workers directs, connus comme faisant partie de leurs
membres, pour le traitement effectif des requtes. Chaque
rpartiteur peut comporter plusieurs membres. Lorsqu'il traite une
requte, il choisit un de ses membres en fonction de l'algorithme
de rpartition de charge dfini.</p>
<p>Un worker de rpartition est cr si son URL de worker comporte
<code>balancer</code> comme indicateur de protocole. L'URL du
rpartiteur permet d'identifier de manire unique le worker de
rpartition. La directive <code class="directive"><a href="#balancermember">BalancerMember</a></code> permet d'ajouter des
membres au rpartiteur.</p>
<div class="note"><h3>Rsolution DNS pour les domaines originaux</h3>
<p>La rsolution DNS s'effectue lorsque le socket vers le
domaine original est cr pour la premire fois. Lorsque la rutilisation
des connexions est active, chaque domaine d'arrire-plan n'est rsolu qu'une
seule fois pour chaque processus enfant, et cette rsolution est mise en
cache pour toutes les connexions ultrieures jusqu' ce que le processus enfant
soit recycl. Ce comportement doit tre pris en considration lorsqu'on
planifie des tches de maintenance du DNS impactant les domaines
d'arrire-plan. Veuillez aussi vous reporter aux paramtres de la
directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour plus de
dtails propos de la rutilisation des connexions.</p>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="access" id="access">Contrler l'accs votre
mandataire</a></h2>
<p>Vous pouvez restreindre l'accs votre mandataire via le bloc
de contrle <code class="directive"><a href="#proxy"><Proxy></a></code> comme dans
l'exemple suivant :</p>
<pre class="prettyprint lang-config"><Proxy "*">
Require ip 192.168.0
</Proxy></pre>
<p>Pour plus de dtails sur les directives de contrle d'accs,
voir la documentation du module
<code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
<p>Restreindre l'accs de manire stricte est essentiel si vous
mettez en oeuvre un mandataire direct (en dfinissant la directive
<code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> "on").
Dans le cas contraire, votre serveur pourrait tre utilis par
n'importe quel client pour accder des serveurs quelconques,
tout en masquant sa vritable identit. Ceci reprsente un danger
non seulement pour votre rseau, mais aussi pour l'Internet au
sens large. Dans le cas de la mise en oeuvre d'un mandataire
inverse (en utilisant la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> avec <code>ProxyRequests Off</code>), le contrle
d'accs est moins critique car les clients ne peuvent contacter
que les serveurs que vous avez spcifis.</p>
<p><strong>Voir aussi</strong> la variable d'environnement <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="startup" id="startup">Ralentissement au dmarrage</a></h2>
<p>Si vous utilisez la directive <code class="directive"><a href="#proxyblock">ProxyBlock</a></code>, les noms d'htes sont rsolus en adresses
IP puis ces dernires mises en cache au cours du dmarrage
des fins de tests de comparaisons ultrieurs. Ce processus peut
durer plusieurs secondes (ou d'avantage) en fonction de la vitesse
laquelle s'effectue la rsolution des noms d'htes.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="intranet" id="intranet">Mandataire en Intranet</a></h2>
<p>Un serveur mandataire Apache httpd situ l'intrieur d'un Intranet
doit faire suivre les requtes destines un serveur externe
travers le pare-feu de l'entreprise (pour ce faire, dfinissez la
directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> de
faon ce qu'elle fasse suivre le <var>protocole</var> concern
vers le mandataire du pare-feu). Cependant, lorsqu'il doit accder
des ressources situes dans l'Intranet, il peut se passer du
pare-feu pour accder aux serveurs. A cet effet, la directive
<code class="directive"><a href="#noproxy">NoProxy</a></code> permet de
spcifier quels htes appartiennent l'Intranet et peuvent donc
tre accds directement.</p>
<p>Les utilisateurs d'un Intranet ont tendance oublier le nom du
domaine local dans leurs requtes WWW, et demandent par exemple
"http://un-serveur/" au lieu de
<code>http://un-serveur.example.com/</code>. Certains serveurs
mandataires commerciaux acceptent ce genre de requte et les
traitent simplement en utilisant un nom de domaine local
implicite. Lorsque la directive <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> est utilise et si le
serveur est <a href="#proxyrequests">configur comme
mandataire</a>, Apache httpd peut renvoyer une rponse de redirection et
ainsi fournir au client l'adresse de serveur correcte,
entirement qualifie. C'est la mthode privilgier car le
fichier des marque-pages de l'utilisateur contiendra alors des
noms de serveurs entirement qualifis.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="envsettings" id="envsettings">Ajustements relatifs au
protocole</a></h2>
<p>Pour les cas o <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> envoie des requtes
vers un serveur qui n'implmente pas correctement les connexions
persistantes ou le protocole HTTP/1.1, il existe deux variables
d'environnement qui permettent de forcer les requtes utiliser
le protocole HTTP/1.0 avec connexions non persistantes. Elles
peuvent tre dfinies via la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>.</p>
<p>Il s'agit des variables <code>force-proxy-request-1.0</code> et
<code>proxy-nokeepalive</code>.</p>
<pre class="prettyprint lang-config"><Location "/buggyappserver/">
ProxyPass "http://buggyappserver:7001/foo/"
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Location></pre>
<p>A partir de la version 2.4.26 du serveur HTTP Apache, la dfinition de
la variable d'environnement "no-proxy" permet de dsactiver
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> dans le traitement de la requte courante.
Cette variable doit tre dfinie via la directive <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> car la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code> n'est pas value assez tt.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="request-bodies" id="request-bodies">Corps de requtes</a></h2>
<p>Certaines mthodes de requtes comme POST comportent un corps de
requte. Le protocole HTTP stipule que les requtes qui comportent
un corps doivent soit utiliser un codage de transmission
fractionne (chunked transfer encoding), soit envoyer un en-tte de requte
<code>Content-Length</code>. Lorsqu'il fait suivre ce genre de
requte vers le serveur demand, <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
s'efforce toujours d'envoyer l'en-tte <code>Content-Length</code>.
Par contre, si la taille du corps est importante, et si la requte
originale utilise un codage fractionnement, ce dernier peut aussi
tre utilis dans la requte montante. Ce comportement peut tre
contrl l'aide de <a href="../env.html">variables
d'environnement</a>. Ainsi, si elle est dfinie, la variable
<code>proxy-sendcl</code> assure une compatibilit maximale avec les
serveurs demands en imposant l'envoi de l'en-tte
<code>Content-Length</code>, alors que
<code>proxy-sendchunked</code> diminue la consommation de ressources
en imposant l'utilisation d'un codage fractionnement.</p>
<p>Dans certaines circonstances, le serveur doit mettre en file
d'attente sur disque les corps de requtes afin de satisfaire le
traitement demand des corps de requtes. Par exemple, cette mise en
file d'attente se produira si le corps original a t envoy selon un
codage morcel (et possde une taille importante), alors que
l'administrateur a demand que les requtes du serveur
d'arrire-plan soient envoyes avec l'en-tte Content-Length ou en
HTTP/1.0. Cette mise en file d'attente se produira aussi si le corps
de la requte contient dj un en-tte Content-Length, alors que le
serveur est configur pour filtrer les corps des requtes entrantes.</p>
<p>La directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> ne s'applique qu'aux
corps de requtes que le serveur met en file d'attente sur disque.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="x-headers" id="x-headers">En-ttes de requte du mandataire
inverse</a></h2>
<p>Lorsqu'il est configur en mode mandataire inverse (en utilisant
par exemple la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>),
<code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> ajoute plusieurs en-ttes de requte
afin de transmettre des informations au serveur demand. Ces
en-ttes sont les suivants :</p>
<dl>
<dt><code>X-Forwarded-For</code></dt>
<dd>L'adresse IP du client.</dd>
<dt><code>X-Forwarded-Host</code></dt>
<dd>L'hte d'origine demand par le client dans l'en-tte de
requte HTTP <code>Host</code>.</dd>
<dt><code>X-Forwarded-Server</code></dt>
<dd>Le nom d'hte du serveur mandataire.</dd>
</dl>
<p>Ces en-ttes doivent tre utiliss avec prcautions sur le
serveur demand, car ils contiendront plus d'une valeur (spares
par des virgules) si la requte originale contenait dj un de ces
en-ttes. Par exemple, vous pouvez utiliser
<code>%{X-Forwarded-For}i</code> dans la chane de format du journal
du serveur demand pour enregistrer les adresses IP des clients
originaux, mais il est possible que vous obteniez plusieurs adresses
si la requte passe travers plusieurs mandataires.</p>
<p>Voir aussi les directives <code class="directive"><a href="#proxypreservehost">ProxyPreserveHost</a></code> et <code class="directive"><a href="#proxyvia">ProxyVia</a></code> directives, qui permettent
de contrler d'autres en-ttes de requte.</p>
<p>Note : Si vous devez ajouter des en-ttes particuliers la
requte mandate, utilisez la directive <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>.</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="balancergrowth" id="balancergrowth">Directive</a> <a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de membres supplmentaires pouvant tre ajouts
aprs la configuration initiale</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerGrowth <var>#</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>BalancerGrowth 5</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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit:</a></th><td>BalancerGrowth est disponible depuis la version 2.3.13 du
serveur HTTP Apache</td></tr>
</table>
<p>Cette directive permet de dfinir le nombre de membres pouvant
tre ajouts au groupe de rpartition de charge prconfigur d'un
serveur virtuel. Elle n'est active que si le groupe a t
prconfigur avec un membre au minimum.</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="balancerinherit" id="balancerinherit">Directive</a> <a name="BalancerInherit" id="BalancerInherit">BalancerInherit</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Hritage des membres du groupes de rpartition de
charge du mandataire dfinis au niveau du serveur principal</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerInherit On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>BalancerInherit On</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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit:</a></th><td>Disponible partir de la version 2.4.5 du serveur
HTTP Apache.</td></tr>
</table>
<p>Cette directive permet d'attribuer au serveur virtuel courant
l'hritage des membres de groupes de rpartition de charge
dfinis au niveau du serveur
principal. Elle ne doit pas tre active si vous
utilisez la fonctionnalit de modifications dynamiques du
gestionnaire de rpartition de charge (Balancer Manager) pour
viter des problmes et des comportements inattendus.</p>
<p>Les dfinitions au niveau du serveur principal constituent
les dfinitions par dfaut au niveau des serveurs virtuels.</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="balancermember" id="balancermember">Directive</a> <a name="BalancerMember" id="BalancerMember">BalancerMember</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un membre un groupe de rpartition de
charge</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var>cl=valeur [cl=valeur ...]]</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>rpertoire</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</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit:</a></th><td>Disponible depuis la version 2.2 du serveur HTTP Apache.</td></tr>
</table>
<p>Cette directive permet d'ajouter un membre un groupe de
rpartition de charge. Elle peut se trouver dans un conteneur
<code><Proxy <var>balancer://</var>...></code>, et accepte
tous les paramtres de paires cl/valeur que supporte la directive
<code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
<p>La directive <code class="directive">BalancerMember</code> accepte un paramtre
supplmentaire : <var>loadfactor</var>. Il s'agit du facteur de
charge du membre - un nombre dcimal entre 1.0 (valeur par dfaut) et 100.0, qui
dfinit la charge appliquer au membre en question.</p>
<p>L'argument <var>balancerurl</var> n'est requis que s'il ne se trouve pas
dj dans la directive de conteneur <code><Proxy
<var>balancer://</var>...></code>. Il correspond l'URL d'un
rpartiteur de charge dfini par une directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
<p>La partie chemin de l'URL du rpartiteur dans toute directive de
conteneur <code><Proxy <var>balancer://</var>...></code> est
ignore.</p>
<p>En particulier, le slash de fin de l'URL d'un
<code class="directive">BalancerMember</code> doit tre supprim.</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="balancerpersist" id="balancerpersist">Directive</a> <a name="BalancerPersist" id="BalancerPersist">BalancerPersist</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Tente de conserver les changements effectus par le
gestionnaire de rpartition de charge aprs un redmarrage du
serveur.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerPersist On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>BalancerPersist Off</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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit:</a></th><td>BalancerPersist n'est disponible qu' partir de la
version 2.4.4 du serveur HTTP Apache.</td></tr>
</table>
<p>Cette directive permet de conserver le contenu de l'espace
mmoire partag associ aux rpartiteurs de charge et leurs
membres aprs un redmarrage du serveur. Ces modifications
locales ne sont ainsi pas perdues lors des transitions d'tat
dues un redmarrage.</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="noproxy" id="noproxy">Directive</a> <a name="NoProxy" id="NoProxy">NoProxy</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Serveurs, domaines ou rseaux auquels on se connectera
directement</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>NoProxy <var>domaine</var> [<var>domaine</var>] ...</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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
</table>
<p>Cette directive n'a d'utilit que pour les serveurs mandataires
Apache httpd au sein d'Intranets. La directive
<code class="directive">NoProxy</code> permet de spcifier une liste de
sous-rseaux, d'adresses IP, de serveurs et/ou de domaines spars
par des espaces. Une requte pour un serveur qui correspond un ou
plusieurs critres sera toujours servie par ce serveur directement,
sans tre redirige vers le(s) serveur(s) mandataire(s) dfini(s) par
la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote "*" "http://firewall.example.com:81"
NoProxy ".example.com" "192.168.112.0/21"</pre>
</div>
<p>Le type des arguments <var>serveur</var> de la directive
<code class="directive">NoProxy</code> appartiennent la liste suivante
:</p>
<dl>
<dt><var><a name="domain" id="domain">Domaine</a></var></dt>
<dd>
<p>Un <dfn>domaine</dfn> est ici un nom de domaine DNS partiellement
qualifi prcd d'un point. Il reprsente une liste de serveurs qui
appartiennent logiquement au mme domaine ou la mme zonz DNS
(en d'autres termes, les nom des serveurs se terminent tous par
<var>domaine</var>).</p>
<div class="example"><h3>Exemple</h3><p><code>
.com .example.org.
</code></p></div>
<p>Pour faire la distinction entre <var>domaine</var>s et <var><a href="#hostname">nom d'hte</a></var>s (des points de vue la fois
syntaxique et
smantique, un domaine DNS pouvant aussi avoir un enregistrement DNS
de type A !), les <var>domaine</var>s sont toujours spcifis en les
prfixant par un point.</p>
<div class="note"><h3>Note</h3>
<p>Les comparaisons de noms de domaines s'effectuent sans tenir
compte de la casse, et les parties droites des <var>Domaine</var>s
sont toujours censes correspondre la racine de l'arborescence
DNS, si bien que les domaines <code>.ExEmple.com</code> et
<code>.example.com.</code> (notez le point la fin du nom) sont
considrs comme identiques. Comme une comparaison de domaines ne
ncessite pas de recherche DNS, elle est beaucoup plus efficace
qu'une comparaison de sous-rseaux.</p>
</div></dd>
<dt><var><a name="subnet" id="subnet">Sous-rseau</a></var></dt>
<dd>
<p>Un <dfn>Sous-rseau</dfn> est une adresse internet partiellement
qualifie sous forme numrique (quatre nombres spars par des
points), optionnellement suivie d'un slash et du masque de
sous-rseau spcifiant le nombre de bits significatifs dans le
<var>Sous-rseau</var>. Il reprsente un sous-rseau de serveurs qui
peuvent tre atteints depuis la mme interface rseau. En l'absence
de masque de sous-rseau explicite, il est sous-entendu que les
digits manquants (ou caractres 0) de fin spcifient le masque de
sous-rseau (Dans ce cas, le masque de sous-rseau ne peut tre
qu'un multiple de 8). Voici quelques exemples :</p>
<dl>
<dt><code>192.168</code> ou <code>192.168.0.0</code></dt>
<dd>le sous-rseau 192.168.0.0 avec un masque de sous-rseau
implicite de 16 bits significatifs (parfois exprim sous la forme
<code>255.255.0.0</code>)</dd>
<dt><code>192.168.112.0/21</code></dt>
<dd>le sous-rseau <code>192.168.112.0/21</code> avec un masque de
sous-rseau implicite de 21 bits significatifs (parfois exprim
sous la forme<code>255.255.248.0</code>)</dd>
</dl>
<p>Comme cas extrmes, un <em>Sous-rseau</em> avec un masque de
sous-rseau de 32 bits significatifs est quivalent une <var><a href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-rseau</em> avec un masque de
sous-rseau de 0 bit significatif (c'est dire 0.0.0.0/0) est
identique la constante <var>_Default_</var>, et peut correspondre
toute adresse IP.</p></dd>
<dt><var><a name="ipaddr" id="ipaddr">Adresse IP</a></var></dt>
<dd>
<p>Une <dfn>Adresse IP</dfn> est une adresse internet pleinement
qualifie sous forme numrique (quatre nombres spars par des
points). En gnral, cette adresse reprsente un serveur, mais elle
ne doit pas ncessairement correspondre un nom de domaine DNS.</p>
<div class="example"><h3>Exemple</h3><p><code>
192.168.123.7
</code></p></div>
<div class="note"><h3>Note</h3>
<p>Une <dfn>Adresse IP</dfn> ne ncessite pas de rsolution DNS,
et peut ainsi s'avrer plus efficace quant aux performances
d'Apache.</p>
</div></dd>
<dt><var><a name="hostname" id="hostname">Nom de serveur</a></var></dt>
<dd>
<p>Un <dfn>Nom de serveur</dfn> est un nom de domaine DNS pleinement
qualifi qui peut tre rsolu en une ou plusieurs adresses IP par le
service de noms de domaines DNS. Il reprsente un hte logique (par
opposition aux <var><a href="#domain">Domaine</a></var>s, voir
ci-dessus), et doit pouvoir tre rsolu en une ou plusieurs <var><a href="#ipaddr">adresses IP</a></var> (ou souvent en une liste
d'htes avec diffrentes <var><a href="#ipaddr">adresses
IP</a></var>).</p>
<div class="example"><h3>Exemples</h3><p><code>
prep.ai.example.edu<br />
www.example.org
</code></p></div>
<div class="note"><h3>Note</h3>
<p>Dans de nombreuses situations, il est plus efficace de
spcifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un
<var>Nom de serveur</var> car cela vite d'avoir effectuer une
recherche DNS. La rsolution de nom dans Apache httpd peut prendre un
temps trs long lorsque la connexion avec le serveur de noms
utilise une liaison PPP lente.</p>
<p>Les comparaisons de <var>Nom de serveur</var> s'effectuent sans tenir
compte de la casse, et les parties droites des <var>Noms de serveur</var>
sont toujours censes correspondre la racine de l'arborescence
DNS, si bien que les domaines <code>WWW.ExEmple.com</code> et
<code>www.example.com.</code> (notez le point la fin du nom) sont
considrs comme identiques.</p>
</div></dd>
</dl>
<h3>Voir aussi</h3>
<ul>
<li><a href="../dns-caveats.html">Problmes lis au DNS</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="proxy" id="proxy">Directive</a> <a name="Proxy" id="Proxy"><Proxy></a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant des ressources
mandates</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><Proxy <var>url-avec-jokers</var>> ...</Proxy></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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
</table>
<p>Les directives situes dans une section <code class="directive"><Proxy></code> ne s'appliquent qu'au contenu
mandat concern. Les jokers de style shell sont autoriss.</p>
<p>Par exemple, les lignes suivantes n'autoriseront accder un
contenu via votre serveur mandataire que les htes appartenant
<code>votre-reseau.example.com</code> :</p>
<pre class="prettyprint lang-config"><Proxy "*">
Require host votre-reseau.example.com
</Proxy></pre>
<p>Dans l'exemple suivant, tous les fichiers du rpertoire
<code>foo</code> de <code>example.com</code> seront traits par le
filtre <code>INCLUDES</code> lorsqu'ils seront envoys par
l'intermdiaire du serveur mandataire :</p>
<pre class="prettyprint lang-config"><Proxy "http://example.com/foo/*">
SetOutputFilter INCLUDES
</Proxy></pre>
<div class="note"><h3>Diffrences avec la section de configuration Location</h3>
<p>Une URL d'arrire-plan sera concerne par le conteneur Proxy si
elle commence par la <var>url-avec-jokers</var>, mme si le
dernier segment de chemin de la directive ne correspond qu' un
prfixe de segment dee chemin de l'URL d'arrire-plan. Par exemple, <Proxy
"http://example.com/foo"> correspondra entre autres aux URLs
http://example.com/foo, http://example.com/foo/bar, et
http://example.com/foobar. La correspondance de l'URL finale
diffre du comportement de la section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> qui, pour le cas de cette note,
traitera le segment de chemin final comme s'il se terminait par un
slash.</p>
<p>Pour un contrle plus fin de la correspondance des URL, voir la
directive <code class="directive"><ProxyMatch></code>.</p>
</div>
<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#proxymatch"><ProxyMatch></a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="proxyaddheaders" id="proxyaddheaders">Directive</a> <a name="ProxyAddHeaders" id="ProxyAddHeaders">ProxyAddHeaders</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute des informations propos du mandataire aux
en-ttes X-Forwarded-*</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyAddHeaders Off|On</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>ProxyAddHeaders On</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, rpertoire</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</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit:</a></th><td>Disponible depuis la version 2.3.10</td></tr>
</table>
<p>Cette directive permet de passer au serveur d'arrire-plan des
informations propos du mandataire via les en-ttes HTTP
X-Forwarded-For, X-Forwarded-Host et X-Forwarded-Server.</p>
<div class="note"><h3>Utilit</h3>
<p>Cette option n'est utile que dans le cas du mandat HTTP trait
par <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>.</p>
</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="proxybadheader" id="proxybadheader">Directive</a> <a name="ProxyBadHeader" id="ProxyBadHeader">ProxyBadHeader</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dtermine la manire de traiter les lignes d'en-tte
incorrectes d'une rponse</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBadHeader IsError|Ignore|StartBody</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>ProxyBadHeader IsError</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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
</table>
<p>La directive <code class="directive">ProxyBadHeader</code> permet de
dterminer le comportement de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> lorsqu'il
reoit des lignes d'en-tte de rponse dont la syntaxe n'est pas valide (c'est
dire ne contenant pas de caractre ':') en provenance du serveur
original. Les arguments disponibles sont :</p>
<dl>
<dt><code>IsError</code></dt>
<dd>Annule la requte et renvoie une rponse de code 502 (mauvaise
passerelle). C'est le comportement par dfaut.</dd>
<dt><code>Ignore</code></dt>
<dd>Traite les lignes d'en-tte incorrectes comme si elles n'avaient
pas t envoyes.</dd>
<dt><code>StartBody</code></dt>
<dd>A la rception de la premire ligne d'en-tte incorrecte, les
autres en-ttes sont lus et ce qui reste est trait en tant que
corps. Ceci facilite la prise en compte des serveurs d'arrire-plan
bogus qui oublient d'insrer une ligne vide entre les
en-ttes et le corps.</dd>
</dl>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="proxyblock" id="proxyblock">Directive</a> <a name="ProxyBlock" id="ProxyBlock">ProxyBlock</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Termes, serveurs ou domaines bloqus par le
mandataire</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>terme</var>|<var>serveur</var>|<var>domaine</var>
[<var>terme</var>|<var>serveur</var>|<var>domaine</var>] ...</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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
</table>
<p>La directive <code class="directive">ProxyBlock</code> permet de
spcifier une liste de termes, serveurs et/ou domaines, spars par
des espaces. Les requtes de documents HTTP, HTTPS, FTP vers des
sites dont les noms contiennent des termes, noms de serveur ou
domaine correspondants seront <em>bloqus</em> par le serveur
mandataire. La module proxy va aussi tenter de dterminer les
adresses IP des lments de la liste qui peuvent correspondre des
noms d'htes au cours du dmarrage, et les mettra en cache des
fins de comparaisons ultrieures. Ceci peut ralentir le dmarrage du
serveur.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyBlock "news.example.com" "auctions.example.com" "friends.example.com"</pre>
</div>
<p>Notez qu'<code>example</code> suffirait aussi pour atteindre
ces sites.</p>
<p>Hosts conviendrait aussi s'il tait rfrenc par adresse IP.</p>
<p>Notez aussi que</p>
<pre class="prettyprint lang-config">ProxyBlock "*"</pre>
<p>bloque les connexions vers tous les sites.</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="proxydomain" id="proxydomain">Directive</a> <a name="ProxyDomain" id="ProxyDomain">ProxyDomain</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de domaine par dfaut pour les requtes
mandates</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyDomain <var>Domaine</var></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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
</table>
<p>Cette directive n'a d'utilit que pour les serveurs mandataires
Apache httpd au sein d'un Intranet. La directive
<code class="directive">ProxyDomain</code> permet de spcifier le domaine
par dfaut auquel le serveur mandataire apache appartient. Si le
serveur reoit une requte pour un hte sans nom de domaine, il va
gnrer une rponse de redirection vers le mme hte suffix par le
<var>Domaine</var> spcifi.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote "*" "http://firewall.example.com:81"
NoProxy ".example.com" "192.168.112.0/21"
ProxyDomain ".example.com"</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="proxyerroroverride" id="proxyerroroverride">Directive</a> <a name="ProxyErrorOverride" id="ProxyErrorOverride">ProxyErrorOverride</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Outrepasser les pages d'erreur pour les contenus
mandats</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyErrorOverride On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>ProxyErrorOverride Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, rpertoire</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</td></tr>
</table>
<p>Cette directive est utile pour les configurations de mandataires
inverses, lorsque vous souhaitez que les pages d'erreur envoyes
aux utilisateurs finaux prsentent un aspect homogne. Elle permet
aussi l'inclusion de fichiers (via les SSI de
<code class="module"><a href="../mod/mod_include.html">mod_include</a></code>) pour obtenir le code d'erreur et agir
en consquence (le comportement par dfaut afficherait la page
d'erreur du serveur mandat, alors que c'est le message d'erreur SSI
qui sera affich si cette directive est "on").</p>
<p>Cette directive n'affecte pas le traitement des rponses
informatives (1xx), de type succs normal (2xx), ou de redirection
(3xx).</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="proxyiobuffersize" id="proxyiobuffersize">Directive</a> <a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dtermine la taille du tampon interne de transfert de
donnes</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyIOBufferSize <var>octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Dfaut:</a></th><td><code>ProxyIOBufferSize 8192</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#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
</table>