-
Notifications
You must be signed in to change notification settings - Fork 0
/
cheatsheet-varnish-high-availability.sla
796 lines (796 loc) · 67.9 KB
/
cheatsheet-varnish-high-availability.sla
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
<?xml version="1.0" encoding="UTF-8"?>
<SCRIBUSUTF8NEW Version="1.4.1.svn">
<DOCUMENT ANZPAGES="2" PAGEWIDTH="841.89" PAGEHEIGHT="595.28" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" PRESET="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" ORIENTATION="1" PAGESIZE="A4" FIRSTNUM="1" BOOK="0" AUTOSPALTEN="1" ABSTSPALTEN="11" UNITS="0" DFONT="Arial Regular" DSIZE="12" DCOL="1" DGAP="0" TabFill="" TabWidth="36" AUTHOR="" COMMENTS="" KEYWORDS="" PUBLISHER="" DOCDATE="" DOCTYPE="" DOCFORMAT="" DOCIDENT="" DOCSOURCE="" DOCLANGINFO="" DOCRELATION="" DOCCOVER="" DOCRIGHTS="" DOCCONTRIB="" TITLE="" SUBJECT="" VHOCH="33" VHOCHSC="66" VTIEF="33" VTIEFSC="66" VKAPIT="75" BASEGRID="14.4" BASEO="0" AUTOL="20" UnderlinePos="-1" UnderlineWidth="-1" StrikeThruPos="-1" StrikeThruWidth="-1" GROUPC="2" HCMS="0" DPSo="0" DPSFo="0" DPuse="0" DPgam="0" DPbla="1" DPMo="" DPPr="" DPIn="" DPInCMYK="" DPIn2="" DPIn3="" DISc="1" DIIm="0" ALAYER="0" LANGUAGE="French" MINWORDLEN="3" HYCOUNT="2" AUTOMATIC="1" AUTOCHECK="0" GUIDELOCK="0" SnapToGuides="1" SnapToGrid="0" MINGRID="20" MAJGRID="100" SHOWGRID="0" SHOWGUIDES="1" showcolborders="1" SHOWFRAME="1" SHOWLAYERM="0" SHOWMARGIN="1" SHOWBASE="0" SHOWPICT="1" SHOWControl="0" SHOWLINK="0" rulerMode="1" showrulers="1" showBleed="1" rulerXoffset="0" rulerYoffset="0" GuideRad="10" GRAB="4" POLYC="4" POLYF="0.707106781186548" POLYR="0" POLYCUR="0" POLYFD="0" POLYS="0" AutoSave="1" AutoSaveTime="600000" ScratchBottom="20" ScratchLeft="100" ScratchRight="100" ScratchTop="20" GapHorizontal="0" GapVertical="40" StartArrow="0" EndArrow="0" PEN="Black" BRUSH="None" PENLINE="Black" PENTEXT="Black" StrokeText="Black" TextBackGround="None" TextLineColor="None" TextBackGroundShade="100" TextLineShade="100" TextPenShade="100" TextStrokeShade="100" STIL="1" STILLINE="1" WIDTH="1" WIDTHLINE="1" PENSHADE="100" LINESHADE="100" BRUSHSHADE="100" MAGMIN="10" MAGMAX="3200" MAGSTEP="200" CPICT="None" PICTSHADE="100" PICTSCX="1" PICTSCY="1" PSCALE="1" PASPECT="1" EmbeddedPath="0" HalfRes="1" dispX="10" dispY="10" constrain="15" MINORC="#00ff00" MAJORC="#00ff00" GuideC="#000080" BaseC="#c0c0c0" GuideZ="10" BACKG="1" PAGEC="#ffffff" MARGC="#0000ff" RANDF="0" currentProfile="PostScript">
<CheckProfile Name="PDF 1.3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
<CheckProfile Name="PDF 1.4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
<CheckProfile Name="PDF 1.5" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
<CheckProfile Name="PDF/X-3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
<CheckProfile Name="PostScript" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkOffConflictLayers="0"/>
<COLOR NAME="Black" CMYK="#000000ff" Spot="0" Register="0"/>
<COLOR NAME="Nouvelle couleur" CMYK="#99990033" Spot="0" Register="0"/>
<COLOR NAME="Registration" CMYK="#ffffffff" Spot="0" Register="1"/>
<COLOR NAME="White" CMYK="#00000000" Spot="0" Register="0"/>
<COLOR NAME="invert" CMYK="#004aff00" Spot="0" Register="0"/>
<HYPHEN/>
<STYLE NAME="Default Paragraph Style" DefaultStyle="1" LINESPMode="1" VOR="0" NACH="3" FSHADE="90"/>
<STYLE NAME="h1" PARENT="Default Paragraph Style" ALIGN="0" VOR="5" NACH="2" CPARENT="h1" FONT="Liberation Sans Narrow Bold" FONTSIZE="12" FCOLOR="Nouvelle couleur" FSHADE="90"/>
<STYLE NAME="h2" PARENT="Default Paragraph Style" VOR="3" NACH="2" CPARENT="Default Character Style" FONT="Georgia Regular" FONTSIZE="10" FCOLOR="Nouvelle couleur" FSHADE="100"/>
<STYLE NAME="notes" PARENT="Default Paragraph Style" VOR="1" NACH="3" CPARENT="notes" FSHADE="70"/>
<STYLE NAME="p.code" PARENT="Default Paragraph Style" VOR="0" NACH="0" CPARENT="p.code" FSHADE="100"/>
<STYLE NAME="h3" PARENT="Default Paragraph Style" VOR="3" NACH="0" CPARENT="Default Character Style" FONT="Liberation Sans Narrow Regular" FCOLOR="Nouvelle couleur" FSHADE="80"/>
<STYLE NAME="h4" PARENT="Default Paragraph Style" VOR="2" NACH="2" CPARENT="Default Character Style" FONT="Georgia Regular" FONTSIZE="8" FSHADE="60"/>
<STYLE NAME="notes (tight)" PARENT="Default Paragraph Style" VOR="0" NACH="1" CPARENT="notes" FSHADE="70"/>
<CHARSTYLE CNAME="Default Character Style" DefaultStyle="1" FONT="Liberation Sans Narrow Regular" FONTSIZE="9" FEATURES="inherit" FCOLOR="Black" FSHADE="100" SCOLOR="Black" SSHADE="100" TXTSHX="5" TXTSHY="-5" TXTOUT="1" TXTULP="-0.1" TXTULW="-0.1" TXTSTP="-0.1" TXTSTW="-0.1" SCALEH="100" SCALEV="100" BASEO="0" KERN="0" LANGUAGE="French"/>
<CHARSTYLE CNAME="h1" CPARENT="Default Character Style" FONT="Arial Bold" FONTSIZE="14" FSHADE="60"/>
<CHARSTYLE CNAME="h2" CPARENT="Default Character Style" FONT="Arial Bold" FONTSIZE="12" FCOLOR="Nouvelle couleur" FSHADE="80"/>
<CHARSTYLE CNAME="notes" CPARENT="Default Character Style" FONT="Georgia Italic" FONTSIZE="8" FSHADE="70"/>
<CHARSTYLE CNAME="p.code" CPARENT="Default Character Style" FONT="Liberation Mono Regular" FONTSIZE="7" FSHADE="100"/>
<CHARSTYLE CNAME="h3" CPARENT="Default Character Style"/>
<CHARSTYLE CNAME="Nouveau style" LANGUAGE="French"/>
<CHARSTYLE CNAME="p.code.example" CPARENT="p.code" FSHADE="60"/>
<LAYERS NUMMER="0" LEVEL="0" NAME="Fond de page" SICHTBAR="1" DRUCKEN="1" EDIT="1" FLOW="1" TRANS="1" BLEND="0" OUTL="0" LAYERC="#000000"/>
<Printer firstUse="1" toFile="0" useAltPrintCommand="0" outputSeparations="0" useSpotColors="0" useColor="0" mirrorH="0" mirrorV="0" useICC="0" doGCR="0" doClip="0" setDevParam="0" useDocBleeds="0" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" includePDFMarks="0" PSLevel="0" PDLanguage="0" markOffset="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="" filename="" separationName="" printerCommand=""/>
<PDF firstUse="0" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" MirrorH="0" MirrorV="0" Clip="0" RotateDeg="0" PresentMode="0" RecalcPic="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="" ImageP="" PrintP="" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="0" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" PageLayout="0" openAction="">
<Fonts Name="Georgia Italic"/>
<Fonts Name="Georgia Regular"/>
<Fonts Name="Liberation Mono Regular"/>
<Fonts Name="Liberation Sans Narrow Bold"/>
<Fonts Name="Liberation Sans Narrow Regular"/>
<Effekte pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
<Effekte pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
<LPI Color="" Frequency="133" Angle="45" SpotFunction="3"/>
<LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/>
<LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/>
<LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/>
<LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/>
</PDF>
<DocItemAttributes/>
<TablesOfContents/>
<PageSets>
<Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
<Set Name="Double Sided" FirstPage="1" Rows="1" Columns="2">
<PageNames Name="Left Page"/>
<PageNames Name="Right Page"/>
</Set>
<Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
<PageNames Name="Left Page"/>
<PageNames Name="Middle"/>
<PageNames Name="Right Page"/>
</Set>
<Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
<PageNames Name="Left Page"/>
<PageNames Name="Middle Left"/>
<PageNames Name="Middle Right"/>
<PageNames Name="Right Page"/>
</Set>
</PageSets>
<Sections>
<Section Number="0" Name="0" From="0" To="1" Type="Type_1_2_3" Start="1" Reversed="0" Active="1"/>
</Sections>
<MASTERPAGE PAGEXPOS="100" PAGEYPOS="20" PAGEWIDTH="595.28" PAGEHEIGHT="841.89" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="Normal" MNAM="" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0"/>
<PAGE PAGEXPOS="100" PAGEYPOS="20" PAGEWIDTH="841.89" PAGEHEIGHT="595.28" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="" MNAM="Normal" Size="A4" Orientation="1" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0"/>
<PAGE PAGEXPOS="100" PAGEYPOS="655.28" PAGEWIDTH="595.28" PAGEHEIGHT="841.89" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="1" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0"/>
<FRAMEOBJECT OwnPage="-1" PTYPE="2" XPOS="140" YPOS="1210.56" WIDTH="30.43298969" HEIGHT="20.8057732" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="0.142210232196262" LOCALSCY="0.142210232196262" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="0" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="../cheatsheets fs/octopuce.png" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="0" EMBEDDED="0" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 30.433 0 30.433 0 30.433 0 30.433 0 30.433 20.8058 30.433 20.8058 30.433 20.8058 30.433 20.8058 0 20.8058 0 20.8058 0 20.8058 0 20.8058 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 30.433 0 30.433 0 30.433 0 30.433 0 30.433 20.8058 30.433 20.8058 30.433 20.8058 30.433 20.8058 0 20.8058 0 20.8058 0 20.8058 0 20.8058 0 0 0 0 " NUMGROUP="1" GROUPS="1 " startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="1" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="761.88999999" gHeight="22.29030928" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<trail/>
<PageItemAttributes/>
</FRAMEOBJECT>
<PAGEOBJECT OwnPage="1" PTYPE="4" XPOS="140" YPOS="695.28" WIDTH="251.175257731959" HEIGHT="250" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 251.175 0 251.175 0 251.175 0 251.175 0 251.175 250 251.175 250 251.175 250 251.175 250 0 250 0 250 0 250 0 250 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 251.175 0 251.175 0 251.175 0 251.175 0 251.175 250 251.175 250 251.175 250 251.175 250 0 250 0 250 0 250 0 250 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Frontend & backends"/>
<para PARENT="h1"/>
<ITEXT CH="Varnish being a reverse proxy, it acts as the Frontend receiving browsers Requests. Depending on the caching, it might transmit these Requests to a number of Backends hosting the web applications."/>
<para/>
<ITEXT CH="Declaring and using a backend"/>
<para PARENT="h2"/>
<ITEXT CH="backend web1 {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .host = "10.5.0.1"; #"/>
<nbspace/>
<ITEXT CH="IP address"/>
<para PARENT="p.code"/>
<ITEXT CH=" .port = "80"; # Port"/>
<para PARENT="p.code"/>
<ITEXT CH=" .connect_timeout = 3s; # TCP SYN ACK time"/>
<para PARENT="p.code"/>
<ITEXT CH=" .first_byte_timeout = 120s; # Webapp initial latency"/>
<para PARENT="p.code"/>
<ITEXT CH=" .between_bytes_timeout = 30s; # Webapp latency"/>
<para PARENT="p.code"/>
<ITEXT CH=" .probe{"/>
<para PARENT="p.code"/>
<ITEXT CH=" .url = "/test.jpg" # Resource to test"/>
<para PARENT="p.code"/>
<ITEXT CH=" .timeout = 60 ms # Maximum time for response"/>
<para PARENT="p.code"/>
<ITEXT CH=" .interval = 1 s #"/>
<nbspace/>
<ITEXT CH="Time between tests"/>
<para PARENT="p.code"/>
<ITEXT CH=" .window = 8 # How many tests to consider"/>
<para PARENT="p.code"/>
<ITEXT CH=" .threshold = 6 # Minimum successful tests in window"/>
<para PARENT="p.code"/>
<ITEXT CH=" }"/>
<para PARENT="p.code"/>
<ITEXT CH="} "/>
<para PARENT="p.code"/>
<ITEXT CH="set req.backend=web1;"/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Backend health"/>
<para PARENT="h2"/>
<ITEXT CH="Use probes to validate backends are "healthy" ie. responding. "Unhealthy" backends are discarded until they becomes healthy again."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Without probes, Varnish will still attempt to use sick backends in order to test if they work. Avoid that."/>
<para PARENT="Default Paragraph Style"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="1" PTYPE="4" XPOS="403.051546391753" YPOS="695.28" WIDTH="252.228453608247" HEIGHT="240" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 252.228 0 252.228 0 252.228 0 252.228 0 252.228 240 252.228 240 252.228 240 252.228 240 0 240 0 240 0 240 0 240 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 252.228 0 252.228 0 252.228 0 252.228 0 252.228 240 252.228 240 252.228 240 252.228 240 0 240 0 240 0 240 0 240 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Webapps Data Backends "/>
<para PARENT="h1"/>
<ITEXT CH="Using load balancing means webs application should share everything except code with backends in the same group."/>
<para PARENT="notes"/>
<ITEXT CH="Solutions & Techniques"/>
<para PARENT="h2"/>
<ITEXT CH="Sharing a given type resource in a webapp depends on its size and architecture. Here is a catalog of solutions."/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="CDN"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Store files in another infrastructure "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="404 LOAD"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Copy files from other backends when not found "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="LOGSTASH"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing logs remotely"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="MEMCACHE"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing key-value data"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="MERGE_LATER"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Merging log files from backends at regular times"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="NFS"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Filesystem over network mounting protocol"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="NOSQL"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Family of databases (Mongo, Redis, Cassandra"/>
<ITEXT CH=")"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="PROD_SCRIPTS"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Update webapps / dependencies automatically "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="SENTRY"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing application internal logs"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="SQL"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Family of databases (Mysql, Postgresql)"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="SYSLOG"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing logs"/>
<trail PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="1" PTYPE="4" XPOS="140" YPOS="949.84701030928" WIDTH="515.28" HEIGHT="492.322989690722" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="2" COLGAP="12" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 515.28 0 515.28 0 515.28 0 515.28 0 515.28 492.323 515.28 492.323 515.28 492.323 515.28 492.323 0 492.323 0 492.323 0 492.323 0 492.323 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 515.28 0 515.28 0 515.28 0 515.28 0 515.28 492.323 515.28 492.323 515.28 492.323 515.28 492.323 0 492.323 0 492.323 0 492.323 0 492.323 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Varnish Load Balancing"/>
<para PARENT="h1"/>
<ITEXT CH="Use the built-in directors provided by Varnish to create load balancers."/>
<para PARENT="notes"/>
<ITEXT CH="They come with various strategies to adapt to your needs"/>
<para PARENT="notes"/>
<ITEXT CH="How to declare a director"/>
<para PARENT="h2"/>
<ITEXT CH="director dir1 round-robin {"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web1; }"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web2; }"/>
<para PARENT="p.code"/>
<ITEXT CH="}"/>
<para PARENT="p.code"/>
<ITEXT CH="set req.backend = dir1;"/>
<para PARENT="p.code"/>
<ITEXT CH="Directors names and their strategies"/>
<para PARENT="h2"/>
<ITEXT CPARENT="p.code" CH="fall_back"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Uses only one healthy backend at a time "/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="random"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Picks a backend randomly"/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="client"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Picks a backend using a defined method (ex: IP)"/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="round_robin"/>
<ITEXT CH=" "/>
<tab/>
<ITEXT CH="Picks backends one after the other in order"/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="dns"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Defines a pool of backends based on IP range or"/>
<breakline/>
<tab/>
<tab/>
<ITEXT CH="FQDN. Uses random or round_robin strategy "/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="hash"/>
<ITEXT CH=" *"/>
<tab/>
<tab/>
<ITEXT CH="Picks a backend using the hash of the resource "/>
<para PARENT="notes"/>
<ITEXT CH="* Only useful if backends are proxies as well"/>
<para PARENT="notes"/>
<ITEXT CH="Example Director for Backend Failover"/>
<para PARENT="h2"/>
<ITEXT CH="director dir1 fallback {"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web1; }"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web2; } // used only if web1 is unhealthy."/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web3; } // used only if last healthy"/>
<para PARENT="p.code"/>
<ITEXT CH="}"/>
<para PARENT="p.code"/>
<ITEXT CH="Example Director for Backend Load Balancing"/>
<para PARENT="h2"/>
<ITEXT CH="director b2 random {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .retries = 5;"/>
<para PARENT="p.code"/>
<ITEXT CH=" {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .backend = web1;"/>
<para PARENT="p.code"/>
<ITEXT CH=" .weight = 7;"/>
<para PARENT="p.code"/>
<ITEXT CH=" }"/>
<para PARENT="p.code"/>
<ITEXT CH=" {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .backend = web2;"/>
<para PARENT="p.code"/>
<ITEXT CH=" .weight = 3;"/>
<para PARENT="p.code"/>
<ITEXT CH=" }"/>
<para PARENT="p.code"/>
<ITEXT CH="} "/>
<para PARENT="p.code"/>
<ITEXT CH="The weight directive is used to set chances to hit a backend or another."/>
<para PARENT="Default Paragraph Style"/>
<para PARENT="Default Paragraph Style"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<breakcol/>
<ITEXT CH="Types of Resources to share"/>
<para PARENT="h1"/>
<ITEXT CH="Some solutions / data couples work better than others, the best match depends mostly on the webapp specificities. "/>
<para PARENT="h4"/>
<ITEXT CH="Sessions"/>
<para PARENT="h3"/>
<ITEXT CH="Sessions represent a large number of small files. Good practice: store as little as possible in sessions."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Solutions : MEMCACHE, NOSQL, NFS "/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Data"/>
<para PARENT="h3"/>
<ITEXT CH="Data usually represents a large amount of informations with variable levels of fiability needs. "/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Solutions: SQL or NOSQL if small errors are acceptable"/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Logs"/>
<para PARENT="h3"/>
<ITEXT CH="Logs represents large amounts of data with low fiability needs and an "append only" logic."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Solutions: SYSLOG, LOGSTASH, SENTRY, MERGE_LATER"/>
<para/>
<ITEXT CH="Assets"/>
<para PARENT="h3"/>
<ITEXT CH="The assets served by Webapps nowadays depend on their dependencies which might come with their own stylesheets and scripts for example."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Use PROD_SCRIPTS to make sure backends deliver the right contents"/>
<para/>
<ITEXT CH="Load Balancing / Replication / FailOver solutions"/>
<para PARENT="h1"/>
<ITEXT CH="High Availability means having the 3 aspects covered for frontend /backends and web/data servers."/>
<para PARENT="h4"/>
<ITEXT CPARENT="p.code" CH="404 LOAD"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB / R+FO"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Web server synchronisation"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="DISTRIBUTED FS"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+R+FO"/>
<ITEXT CH=" "/>
<tab/>
<tab/>
<ITEXT CH="Ubiquitous file system"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="DNS A "/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Multiple A records for a server"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="DRDB"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="R"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="File system replication"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="HA PROXY"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+FO"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Web reverse proxy"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="IPVS"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+FO"/>
<ITEXT CH=" "/>
<tab/>
<tab/>
<ITEXT CH="TCP connexions manager"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="MASTER/SLAVE"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="R"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Data replication"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="SHARDING"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB / R+FO"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Spreading data over instances"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="VRRP"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="FO"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="IP Failover "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="VARNISH"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+FO"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Web reverse proxy"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CH="Sources"/>
<para PARENT="h1"/>
<ITEXT CH="Load Balancing"/>
<para PARENT="notes"/>
<ITEXT CH="https://www.varnish-cache.org/trac/wiki/LoadBalancing"/>
<para/>
<ITEXT CH="Backend Polling"/>
<para PARENT="notes"/>
<ITEXT CH="https://www.varnish-cache.org/trac/wiki/BackendPolling"/>
<trail/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="1" PTYPE="4" XPOS="140" YPOS="670.66144329897" WIDTH="515.28" HEIGHT="24.6185567010309" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 515.28 0 515.28 0 515.28 0 515.28 0 515.28 24.6186 515.28 24.6186 515.28 24.6186 515.28 24.6186 0 24.6186 0 24.6186 0 24.6186 0 24.6186 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 515.28 0 515.28 0 515.28 0 515.28 0 515.28 24.6186 515.28 24.6186 515.28 24.6186 515.28 24.6186 0 24.6186 0 24.6186 0 24.6186 0 24.6186 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Varnish & High Availability"/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<ITEXT FONT="Georgia Italic" CH="Web reverse proxy "/>
<trail PARENT="h1"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="0" PTYPE="4" XPOS="140" YPOS="318.774845360825" WIDTH="240" HEIGHT="235.854020618557" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 240 0 240 0 240 0 240 0 240 235.854 240 235.854 240 235.854 240 235.854 0 235.854 0 235.854 0 235.854 0 235.854 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 240 0 240 0 240 0 240 0 240 235.854 240 235.854 240 235.854 240 235.854 0 235.854 0 235.854 0 235.854 0 235.854 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Webapps Data Backends "/>
<para PARENT="h1"/>
<ITEXT CH="Using load balancing means webs application should share everything except code with backends in the same group."/>
<para PARENT="notes"/>
<ITEXT CH="Solutions & Techniques"/>
<para PARENT="h2"/>
<ITEXT CH="Sharing a given type resource in a webapp depends on its size and architecture. Here is a catalog of solutions."/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="CDN"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Store files in another infrastructure "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="404 LOAD"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Copy files from other backends when not found "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="LOGSTASH"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing logs remotely"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="MEMCACHE"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing key-value data"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="MERGE_LATER"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Merging log files from backends at regular times"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="NFS"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Filesystem over network mounting protocol"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="NOSQL"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Family of databases (Mongo, Redis, Cassandra"/>
<ITEXT CH=")"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="PROD_SCRIPTS"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Update webapps / dependencies automatically "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="SENTRY"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing application internal logs"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="SQL"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Family of databases (Mysql, Postgresql)"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<ITEXT CPARENT="p.code" FONTSIZE="9" CH="SYSLOG"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<tab CPARENT="p.code" FONTSIZE="9"/>
<ITEXT FONTSIZE="9" CH="Server for storing logs"/>
<trail PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="0" PTYPE="4" XPOS="140" YPOS="35.3814433" WIDTH="515.28" HEIGHT="24.6185567" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 515.28 0 515.28 0 515.28 0 515.28 0 515.28 24.6186 515.28 24.6186 515.28 24.6186 515.28 24.6186 0 24.6186 0 24.6186 0 24.6186 0 24.6186 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 515.28 0 515.28 0 515.28 0 515.28 0 515.28 24.6186 515.28 24.6186 515.28 24.6186 515.28 24.6186 0 24.6186 0 24.6186 0 24.6186 0 24.6186 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Varnish & High Availability"/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<nbspace/>
<ITEXT FONT="Georgia Italic" CH="Web reverse proxy "/>
<trail PARENT="h1"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="0" PTYPE="4" XPOS="140" YPOS="60" WIDTH="240.28" HEIGHT="252.452830188679" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 240.28 0 240.28 0 240.28 0 240.28 0 240.28 252.453 240.28 252.453 240.28 252.453 240.28 252.453 0 252.453 0 252.453 0 252.453 0 252.453 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 240.28 0 240.28 0 240.28 0 240.28 0 240.28 252.453 240.28 252.453 240.28 252.453 240.28 252.453 0 252.453 0 252.453 0 252.453 0 252.453 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Frontend & backends"/>
<para PARENT="h1"/>
<ITEXT CH="Varnish being a reverse proxy, it acts as the Frontend receiving browsers Requests. Depending on the caching, it might transmit these Requests to a number of Backends hosting the web applications."/>
<para/>
<ITEXT CH="Declaring and using a backend"/>
<para PARENT="h2"/>
<ITEXT CH="backend web1 {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .host = "10.5.0.1"; #"/>
<nbspace/>
<ITEXT CH="IP address"/>
<para PARENT="p.code"/>
<ITEXT CH=" .port = "80"; # Port"/>
<para PARENT="p.code"/>
<ITEXT CH=" .connect_timeout = 3s; # TCP SYN ACK time"/>
<para PARENT="p.code"/>
<ITEXT CH=" .first_byte_timeout = 120s; # Webapp initial latency"/>
<para PARENT="p.code"/>
<ITEXT CH=" .between_bytes_timeout = 30s; # Webapp latency"/>
<para PARENT="p.code"/>
<ITEXT CH=" .probe{"/>
<para PARENT="p.code"/>
<ITEXT CH=" .url = "/test.jpg" # Resource to test"/>
<para PARENT="p.code"/>
<ITEXT CH=" .timeout = 60 ms # Maximum time for response"/>
<para PARENT="p.code"/>
<ITEXT CH=" .interval = 1 s #"/>
<nbspace/>
<ITEXT CH="Time between tests"/>
<para PARENT="p.code"/>
<ITEXT CH=" .window = 8 # How many tests to consider"/>
<para PARENT="p.code"/>
<ITEXT CH=" .threshold = 6 # Minimum successful tests in window"/>
<para PARENT="p.code"/>
<ITEXT CH=" }"/>
<para PARENT="p.code"/>
<ITEXT CH="} "/>
<para PARENT="p.code"/>
<ITEXT CH="set req.backend=web1;"/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Backend health"/>
<para PARENT="h2"/>
<ITEXT CH="Use probes to validate backends are "healthy" ie. responding. "Unhealthy" backends are discarded until they becomes healthy again."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Without probes, Varnish will still attempt to use sick backends in order to test if they work. Avoid that."/>
<para PARENT="Default Paragraph Style"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="0" PTYPE="4" XPOS="392" YPOS="60" WIDTH="509.89" HEIGHT="496.701030927835" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="2" COLGAP="12" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 509.89 0 509.89 0 509.89 0 509.89 0 509.89 496.701 509.89 496.701 509.89 496.701 509.89 496.701 0 496.701 0 496.701 0 496.701 0 496.701 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 509.89 0 509.89 0 509.89 0 509.89 0 509.89 496.701 509.89 496.701 509.89 496.701 509.89 496.701 0 496.701 0 496.701 0 496.701 0 496.701 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Varnish Load Balancing"/>
<para PARENT="h1"/>
<ITEXT CH="Use the built-in directors provided by Varnish to create load balancers."/>
<para PARENT="notes"/>
<ITEXT CH="They come with various strategies to adapt to your needs"/>
<para PARENT="notes"/>
<ITEXT CH="How to declare a director"/>
<para PARENT="h2"/>
<ITEXT CH="director dir1 round-robin {"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web1; }"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web2; }"/>
<para PARENT="p.code"/>
<ITEXT CH="}"/>
<para PARENT="p.code"/>
<ITEXT CH="set req.backend = dir1;"/>
<para PARENT="p.code"/>
<ITEXT CH="Directors names and their strategies"/>
<para PARENT="h2"/>
<ITEXT CPARENT="p.code" CH="fall_back"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Uses only one healthy backend at a time "/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="random"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Picks a backend randomly"/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="client"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Picks a backend using a defined method (ex: IP)"/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="round_robin"/>
<ITEXT CH=" "/>
<tab/>
<ITEXT CH="Picks backends one after the other in order"/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="dns"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Defines a pool of backends based on IP range or"/>
<breakline/>
<tab/>
<tab/>
<ITEXT CH="FQDN. Uses random or round_robin strategy "/>
<para PARENT="notes"/>
<ITEXT CPARENT="p.code" CH="hash"/>
<ITEXT CH=" *"/>
<tab/>
<tab/>
<ITEXT CH="Picks a backend using the hash of the resource "/>
<para PARENT="notes"/>
<ITEXT CH="* Only useful if backends are proxies as well"/>
<para PARENT="notes"/>
<ITEXT CH="Example Director for Backend Failover"/>
<para PARENT="h2"/>
<ITEXT CH="director dir1 fallback {"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web1; }"/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web2; } // used only if web1 is unhealthy."/>
<para PARENT="p.code"/>
<ITEXT CH=" { .backend = web3; } // used only if last healthy"/>
<para PARENT="p.code"/>
<ITEXT CH="}"/>
<para PARENT="p.code"/>
<ITEXT CH="Example Director for Backend Load Balancing"/>
<para PARENT="h2"/>
<ITEXT CH="director b2 random {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .retries = 5;"/>
<para PARENT="p.code"/>
<ITEXT CH=" {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .backend = web1;"/>
<para PARENT="p.code"/>
<ITEXT CH=" .weight = 7;"/>
<para PARENT="p.code"/>
<ITEXT CH=" }"/>
<para PARENT="p.code"/>
<ITEXT CH=" {"/>
<para PARENT="p.code"/>
<ITEXT CH=" .backend = web2;"/>
<para PARENT="p.code"/>
<ITEXT CH=" .weight = 3;"/>
<para PARENT="p.code"/>
<ITEXT CH=" }"/>
<para PARENT="p.code"/>
<ITEXT CH="} "/>
<para PARENT="p.code"/>
<ITEXT CH="The weight directive is used to set chances to hit a backend or another."/>
<para PARENT="Default Paragraph Style"/>
<para PARENT="Default Paragraph Style"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10" OpticalMargins="0"/>
<breakcol/>
<ITEXT CH="Types of Resources to share"/>
<para PARENT="h1"/>
<ITEXT CH="Some solutions / data couples work better than others, the best match depends mostly on the webapp specificities. "/>
<para PARENT="h4"/>
<ITEXT CH="Sessions"/>
<para PARENT="h3"/>
<ITEXT CH="Sessions represent a large number of small files. Good practice: store as little as possible in sessions."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Solutions : MEMCACHE, NOSQL, NFS "/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Data"/>
<para PARENT="h3"/>
<ITEXT CH="Data usually represents a large amount of informations with variable levels of fiability needs. "/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Solutions: SQL or NOSQL if small errors are acceptable"/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Logs"/>
<para PARENT="h3"/>
<ITEXT CH="Logs represents large amounts of data with low fiability needs and an "append only" logic."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Solutions: SYSLOG, LOGSTASH, SENTRY, MERGE_LATER"/>
<para/>
<ITEXT CH="Assets"/>
<para PARENT="h3"/>
<ITEXT CH="The assets served by Webapps nowadays depend on their dependencies which might come with their own stylesheets and scripts for example."/>
<para PARENT="Default Paragraph Style"/>
<ITEXT CH="Use PROD_SCRIPTS to make sure backends deliver the right contents"/>
<para/>
<ITEXT CH="Load Balancing / Replication / FailOver solutions"/>
<para PARENT="h1"/>
<ITEXT CH="High Availability means having the 3 aspects covered for frontend /backends and web/data servers."/>
<para PARENT="h4"/>
<ITEXT CPARENT="p.code" CH="404 LOAD"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB / R+FO"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Web server synchronisation"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="DISTRIBUTED FS"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+R+FO"/>
<ITEXT CH=" "/>
<tab/>
<tab/>
<ITEXT CH="Ubiquitous file system"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="DNS A "/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Multiple A records for a server"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="DRDB"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="R"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="File system replication"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="HA PROXY"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+FO"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Web reverse proxy"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="IPVS"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+FO"/>
<ITEXT CH=" "/>
<tab/>
<tab/>
<ITEXT CH="TCP connexions manager"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="MASTER/SLAVE"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="R"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Data replication"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="SHARDING"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB / R+FO"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Spreading data over instances"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="VRRP"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="FO"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="IP Failover "/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CPARENT="p.code" CH="VARNISH"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CPARENT="p.code" CH="LB+FO"/>
<tab CPARENT="p.code"/>
<tab CPARENT="p.code"/>
<ITEXT CH="Web reverse proxy"/>
<para PARENT="Default Paragraph Style" LINESPMode="0" LINESP="10"/>
<ITEXT CH="Sources"/>
<para PARENT="h1"/>
<ITEXT CH="Load Balancing"/>
<para PARENT="notes"/>
<ITEXT CH="https://www.varnish-cache.org/trac/wiki/LoadBalancing"/>
<para/>
<ITEXT CH="Backend Polling"/>
<para PARENT="notes"/>
<ITEXT CH="https://www.varnish-cache.org/trac/wiki/BackendPolling"/>
<trail/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="1" PTYPE="4" XPOS="208.34020619" YPOS="1456.42857142857" WIDTH="471.93979381" HEIGHT="8.74142857142877" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 471.94 0 471.94 0 471.94 0 471.94 0 471.94 8.74143 471.94 8.74143 471.94 8.74143 471.94 8.74143 0 8.74143 0 8.74143 0 8.74143 0 8.74143 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 471.94 0 471.94 0 471.94 0 471.94 0 471.94 8.74143 471.94 8.74143 471.94 8.74143 471.94 8.74143 0 8.74143 0 8.74143 0 8.74143 0 8.74143 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Original document available on http://github.com/octopuce/cheatsheet-varnish-high-availability CC by SA 4.0 "/>
<para PARENT="notes"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="1" PTYPE="4" XPOS="577.30752577" YPOS="1456.1746031746" WIDTH="77.97247423" HEIGHT="8.75663393539696" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 77.9725 0 77.9725 0 77.9725 0 77.9725 0 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 0 8.75663 0 8.75663 0 8.75663 0 8.75663 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 77.9725 0 77.9725 0 77.9725 0 77.9725 0 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 0 8.75663 0 8.75663 0 8.75663 0 8.75663 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT FONTSIZE="8" CH="v.20140720"/>
<trail PARENT="h1" ALIGN="2"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="0" PTYPE="4" XPOS="209.34020619" YPOS="566.538571429" WIDTH="471.9397938" HEIGHT="8.741428571" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 471.94 0 471.94 0 471.94 0 471.94 0 471.94 8.74143 471.94 8.74143 471.94 8.74143 471.94 8.74143 0 8.74143 0 8.74143 0 8.74143 0 8.74143 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 471.94 0 471.94 0 471.94 0 471.94 0 471.94 8.74143 471.94 8.74143 471.94 8.74143 471.94 8.74143 0 8.74143 0 8.74143 0 8.74143 0 8.74143 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT CH="Original document available on http://github.com/octopuce/cheatsheet-varnish-high-availability CC by SA 4.0 "/>
<para PARENT="notes"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="0" PTYPE="2" XPOS="140" YPOS="556.141746029" WIDTH="64" HEIGHT="37.9148577445848" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="0.256" LOCALSCY="0.256" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="0" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="../../projets/octo/logo-blue.png" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="0" EMBEDDED="0" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 64 0 64 0 64 0 64 0 64 37.9149 64 37.9149 64 37.9149 64 37.9149 0 37.9149 0 37.9149 0 37.9149 0 37.9149 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 64 0 64 0 64 0 64 0 64 37.9149 64 37.9149 64 37.9149 64 37.9149 0 37.9149 0 37.9149 0 37.9149 0 37.9149 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<trail/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="0" PTYPE="4" XPOS="823.91752577" YPOS="566.523366065" WIDTH="77.97247423" HEIGHT="8.756633935" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="1" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="1" EMBEDDED="1" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 77.9725 0 77.9725 0 77.9725 0 77.9725 0 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 0 8.75663 0 8.75663 0 8.75663 0 8.75663 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 77.9725 0 77.9725 0 77.9725 0 77.9725 0 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 77.9725 8.75663 0 8.75663 0 8.75663 0 8.75663 0 8.75663 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<ITEXT FONTSIZE="8" CH="v.20140720"/>
<trail PARENT="h1" ALIGN="2"/>
<PageItemAttributes/>
</PAGEOBJECT>
<PAGEOBJECT OwnPage="1" PTYPE="2" XPOS="140" YPOS="1448.421746" WIDTH="64" HEIGHT="37.91485774" RADRECT="0" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PCOLOR="None" PCOLOR2="None" COLUMNS="1" COLGAP="0" NAMEDLST="" SHADE="100" SHADE2="100" GRTYP="0" ROT="0" PLINEART="1" PLINEEND="0" PLINEJOIN="0" LOCALSCX="0.256" LOCALSCY="0.256" LOCALX="0" LOCALY="0" PICART="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" FLIPPEDH="0" FLIPPEDV="0" SCALETYPE="0" RATIO="1" PRINTABLE="1" ANNOTATION="0" ANNAME="" TEXTFLOWMODE="0" TEXTFLOW="0" TEXTFLOW2="0" TEXTFLOW3="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" FLOP="0" PFILE="../../projets/octo/logo-blue.png" PFILE2="" PFILE3="" PRFILE="" EPROF="" IRENDER="0" EMBEDDED="0" LOCK="0" LOCKR="0" REVERS="0" TransValue="0" TransValueS="0" TransBlend="0" TransBlendS="0" isTableItem="0" TopLine="0" LeftLine="0" RightLine="0" BottomLine="0" isGroupControl="0" NUMDASH="0" DASHS="" DASHOFF="0" NUMPO="16" POCOOR="0 0 0 0 64 0 64 0 64 0 64 0 64 37.9149 64 37.9149 64 37.9149 64 37.9149 0 37.9149 0 37.9149 0 37.9149 0 37.9149 0 0 0 0 " NUMCO="16" COCOOR="0 0 0 0 64 0 64 0 64 0 64 0 64 37.9149 64 37.9149 64 37.9149 64 37.9149 0 37.9149 0 37.9149 0 37.9149 0 37.9149 0 0 0 0 " NUMGROUP="0" GROUPS="" startArrowIndex="0" endArrowIndex="0" OnMasterPage="" ImageClip="" ImageRes="1" Pagenumber="0" isInline="0" fillRule="1" doOverprint="0" gXpos="0" gYpos="0" gWidth="0" gHeight="0" LAYER="0" BOOKMARK="0" NEXTITEM="-1" BACKITEM="-1">
<trail/>
<PageItemAttributes/>
</PAGEOBJECT>
</DOCUMENT>
</SCRIBUSUTF8NEW>