diff --git a/README.en.md b/README.en.md
index bf2d88b..1d2af15 100644
--- a/README.en.md
+++ b/README.en.md
@@ -7,8 +7,8 @@ We will start with the general ideas then go deeper to the details.
## Why HAProxy and Varnish ?
They are both open-source, mature and performance-oriented.
-They are not alon inb their categories, but they are the ones we know and love the most.
-They are eaisly available on many platforms. They have great documentation and vast/vibrant communities.
+They are not alone in their categories, but they are the one we know and love the most.
+They are easily available on many platforms. They have great documentation and vast/vibrant communities.
They both are supported by companies that offer professional support and services, while keeping the core open-source and free for everybody.
### HAProxy
@@ -31,14 +31,14 @@ That's where we begin to mention load-balancing. And when we introduce som logic
Varnish is going to store in cache the result of some requests. Later on, a client who makes the same request might get a result from the cache if it is preset andfresh enough.
-With its default configuration, Varnish has a lot of good practice already in place and jst a few adjustments might be necessary to work with most of the situations.
+With its default configuration, Varnish has a lot of good practice already in place and just a few adjustments might be necessary to work with most of the situations.
Every step of the request/response processing is done by functions that can be customized by something that looks a bit like inheritance in programming. At startup, everything is validated and compiled into optimized code.
Like HAProxy, Varnish parses the whole request/response inside the functions, so we can decide if the request/response needs to be modified (like adding or removeing headers), if a response can be served from the cache, if it need to talk to the final server, and if the responsae can be stored in cache for future use.
Varnish stores the content, its objects, into memory to be really fast. if you have a lot of trafic, give it enough RAM to keep a lot of content available.
-## Comment combiner HAProxy et Varnish
+## Let's combine HAProxy and Varnish
So we have decided to have them work together, in a coordinated way, for an efficient and feature-rich setup.
@@ -114,7 +114,7 @@ sub vcl_recv {
The response is extremely fast, which allow for frequent checks by HAProxy.
In the frontend section of HAProxy, there is an ACL that tells if Varnish is knownto be available.
-It is then possible to decide if we can pass the requets to VArnish or bypass it:
+It is then possible to decide if we can pass the requets to Varnish or bypass it:
```
frontend external
@@ -176,7 +176,7 @@ And we can combine several of these conditions together:
Using the PROXY Protocol is not a necessity at all, but it adds a certain amount of comfort when we have proxies involved, like HAProxy and Varnish.
-At the TCP level, when HAProxy talks to Varnish, then Varnish to HAproxy and finally HAroxy to the final web server, they are all seen as regular HTTP clients.
+At the TCP level, when HAProxy talks to Varnish, then Varnish to HAproxy and finally HAproxy to the final web server, they are all seen as regular HTTP clients.
Without any modification, each element reports the IP of the previous elements as the client IP, and the final server thinks that HAProxy is the only client accessing it. It's bad for IP based filtering, logging…
At the HTTP level, we've had the `X-Forwarded-For` header for a long time. I you look at its presence and you know how to parse it, you can use the ocrrect value in your web-server of application. It's cumbersome, and error-prone, and at the TCP level, this is invisible.
@@ -260,7 +260,7 @@ Note: If you use Apache, I encourage you to take a look at the "ForensicLog" mod
With the same focus on tracability easy debugging, we are using HAProxy and Varnosh to add some HTTP headers with information about their behaviour.
-Let'sremember that the HTTP standard has normalized a list of headers. For example : `Host`, `Set-Cookie`, `Cache-Control`…
+Let's remember that the HTTP standard has normalized a list of headers. For example : `Host`, `Set-Cookie`, `Cache-Control`…
But it also normalized a way to use custom, non-standard, HTTP headers with an `X-` prefix. Some have almost become standard and are used very frequently.
### X-Forwarded-*
diff --git a/snippets/haproxy.01.png b/code-snippets/haproxy.01.png
similarity index 100%
rename from snippets/haproxy.01.png
rename to code-snippets/haproxy.01.png
diff --git a/snippets/haproxy.02.png b/code-snippets/haproxy.02.png
similarity index 100%
rename from snippets/haproxy.02.png
rename to code-snippets/haproxy.02.png
diff --git a/code-snippets/haproxy.03.png b/code-snippets/haproxy.03.png
new file mode 100644
index 0000000..29fc24e
Binary files /dev/null and b/code-snippets/haproxy.03.png differ
diff --git a/snippets/haproxy.04.png b/code-snippets/haproxy.04.png
similarity index 100%
rename from snippets/haproxy.04.png
rename to code-snippets/haproxy.04.png
diff --git a/snippets/haproxy.05.png b/code-snippets/haproxy.05.png
similarity index 100%
rename from snippets/haproxy.05.png
rename to code-snippets/haproxy.05.png
diff --git a/snippets/haproxy.06.png b/code-snippets/haproxy.06.png
similarity index 100%
rename from snippets/haproxy.06.png
rename to code-snippets/haproxy.06.png
diff --git a/snippets/haproxy.07.png b/code-snippets/haproxy.07.png
similarity index 100%
rename from snippets/haproxy.07.png
rename to code-snippets/haproxy.07.png
diff --git a/snippets/haproxy.08.png b/code-snippets/haproxy.08.png
similarity index 100%
rename from snippets/haproxy.08.png
rename to code-snippets/haproxy.08.png
diff --git a/snippets/haproxy.09.png b/code-snippets/haproxy.09.png
similarity index 100%
rename from snippets/haproxy.09.png
rename to code-snippets/haproxy.09.png
diff --git a/snippets/haproxy.10.png b/code-snippets/haproxy.10.png
similarity index 100%
rename from snippets/haproxy.10.png
rename to code-snippets/haproxy.10.png
diff --git a/snippets/haproxy.11.png b/code-snippets/haproxy.11.png
similarity index 100%
rename from snippets/haproxy.11.png
rename to code-snippets/haproxy.11.png
diff --git a/snippets/haproxy.13.png b/code-snippets/haproxy.13.png
similarity index 100%
rename from snippets/haproxy.13.png
rename to code-snippets/haproxy.13.png
diff --git a/snippets/haproxy.14.png b/code-snippets/haproxy.14.png
similarity index 100%
rename from snippets/haproxy.14.png
rename to code-snippets/haproxy.14.png
diff --git a/snippets/haproxy.15.png b/code-snippets/haproxy.15.png
similarity index 100%
rename from snippets/haproxy.15.png
rename to code-snippets/haproxy.15.png
diff --git a/snippets/haproxy.16.png b/code-snippets/haproxy.16.png
similarity index 100%
rename from snippets/haproxy.16.png
rename to code-snippets/haproxy.16.png
diff --git a/snippets/haproxy.17.png b/code-snippets/haproxy.17.png
similarity index 100%
rename from snippets/haproxy.17.png
rename to code-snippets/haproxy.17.png
diff --git a/snippets/haproxy.cfg b/code-snippets/haproxy.cfg
similarity index 100%
rename from snippets/haproxy.cfg
rename to code-snippets/haproxy.cfg
diff --git a/snippets/shell.01.png b/code-snippets/shell.01.png
similarity index 100%
rename from snippets/shell.01.png
rename to code-snippets/shell.01.png
diff --git a/snippets/shell.02.png b/code-snippets/shell.02.png
similarity index 100%
rename from snippets/shell.02.png
rename to code-snippets/shell.02.png
diff --git a/snippets/shell.03.png b/code-snippets/shell.03.png
similarity index 100%
rename from snippets/shell.03.png
rename to code-snippets/shell.03.png
diff --git a/snippets/shell.04.png b/code-snippets/shell.04.png
similarity index 100%
rename from snippets/shell.04.png
rename to code-snippets/shell.04.png
diff --git a/snippets/shell.sh b/code-snippets/shell.sh
similarity index 100%
rename from snippets/shell.sh
rename to code-snippets/shell.sh
diff --git a/code-snippets/varnish.01.png b/code-snippets/varnish.01.png
new file mode 100644
index 0000000..b809437
Binary files /dev/null and b/code-snippets/varnish.01.png differ
diff --git a/snippets/varnish.02.png b/code-snippets/varnish.02.png
similarity index 100%
rename from snippets/varnish.02.png
rename to code-snippets/varnish.02.png
diff --git a/snippets/varnish.03.png b/code-snippets/varnish.03.png
similarity index 100%
rename from snippets/varnish.03.png
rename to code-snippets/varnish.03.png
diff --git a/snippets/varnish.04.png b/code-snippets/varnish.04.png
similarity index 100%
rename from snippets/varnish.04.png
rename to code-snippets/varnish.04.png
diff --git a/snippets/varnish.vcl b/code-snippets/varnish.vcl
similarity index 100%
rename from snippets/varnish.vcl
rename to code-snippets/varnish.vcl
diff --git a/haproxyconf.drawio b/haproxyconf.drawio
index b72b79f..1fa12aa 100644
--- a/haproxyconf.drawio
+++ b/haproxyconf.drawio
@@ -1 +1 @@
-7Vtbk5s2FP41fkwGEGD8mL1lp0manW6bZvuS0YIM6srIEbLXzq+vwOIqjPEF43U94wd0JGFxvvN9EkdiAK4ni48MToMv1ENkYGjeYgBuBoahm4YxiH+at1xZHMdeGXyGPdkoNzziX0gaNWmdYQ9FpYacUsLxtGx0aRgil5dskDH6Wm42pqT8r1PoI8Xw6EKiWv/GHg+kVbdHecU9wn4g/9oxhquKCUwbyyeJAujR14IJ3A7ANaOUr64mi2tEYuelfln1u1tTmw2MoZC36XD7KQrR3Zev7v1fkz+8n874T3b3TpePMYdkJp9YjpYvUxe8Bpijxyl04/KrgHkArgI+IaKki8sxDfkdnGASI/yJTvALFP0fCXZfRG3EGX3JXGfE7TEh15RQJsoeGsMZEcO/8mAUIE/eMnpB3A3SQuo3TRR8AqNIXsuRI8bRYq1P9MzTIkQRnSDOlqKJ7GCMJDgyOs20/JpjDRxpCwow66kRyvjys3vnEIgLicIWiJimAgDyREjKImU8oD4NIbnNrVfujM0z7zE6C716X+a9P1M6lcZ/EedLyTw447QML1pg/r1w/RR7/70lSzcLCUZSWMpCc0jEtfLvdCceIZ0xFz0ghoUHEYsjDYe+qAWikkPmI76mshxcIIuJ2GHNESH8m/xrEzWk2iQDaGhngPoQY4hAjuflgRw8XPThhcAFAht2WwKPuiLwUPF/TkhtNw5ug9Bm0jTRDYXpHGxWYdyNWtrSvPn2I9Bv/vltHP0uLj8+Be9Gbal1JGY1DbJArDsmcBAeGhh2EvLPTFz5PPGN/XMWT+RCB4VPBba5ZUM47EXORErlnbVastZAWIOYwsG1hANpl5Rww6FCON2sIZzVFd90Bacr6L5sgGmMTxujvUTR0rUTw8i5aOKm5YbRUhPNPlcbxi5cm0MW4ig4V7ZVFREM9b4VUV0CviG6RaIrLxDuOPQDLem3JhaOQz+w05IEhye/JDnodNc/AUcNDt7xNbyv6U5gwJbfJZZJoZAAiIt5BiApLYul7B9S43aJjDT1kKcbngo19amHrvTBbKkPdp/6YCr6MHfJD4bc+XkxvjrlWob61n/kKVff4OE3RPmuKGS1pNC++TTZ9YGKiS+PGduopHrtSixI9616VcIhG8buEWLVcvN5tXwWHI2m58XR6qx8AhzVGjz81qblHbLycWHPGbkrabBbSoPViTRYFWmwQSUEJTBdSYOtSIML3QAp0RoFcBpfukuCRdgysFkVnlcB/vk5MwjB8ZOw/zrj4jYoRVZuyFhbBnUX0mFaFTw0VTrsGuWoKvrhlMNRELr/8MDoYqlgJJ6alyGABPthjBoKE95dxb7BLiQfZMUEe15CNTEJ4F/wORPpaRxwybNYVwPrJr6XEKAUqQyKdC8mpDGape2Z1LTVfhyjXLCJhoPudmmACuioBtAqDw+Xx9IUQL+lWaoLoNsDatZsu9XtunUHqKqhCpKx7E1by5U8UCLRG2THONo7aQgqeQldzUvURf2wMyepa9C3tuZsAH8tDpWFqK6G6vCYy1BDfUv/P6BglUCwesZAzaRGSKxzWXTWUPTlbtNoq87dqbFeVeOaRaWu1XjF6Syb3+Ls3f5eaQCktWL2PG8BVTGvCUbxUuoc2LqKg/VrrZ7nK9Bi1ZC+mYpnhYQgQn0GJ/GCt5BuKNUV8hAbUcILlKY+WqJWPFzY8vhaOXA6RnZZhmwDr4zOZFl9CzoRASovFuye5Uedvc5JfkytEYre5Uddql3kZz9kT0V+1JN7fctPbxKjKvFZScyGbFLfEtMiEC8SsxWypyIxQAHy8jFNHx/TgJrzM+tP3fd2fsZqkNsj7BAbGzHafodYe+9YxeNT2tpgM9+DtOGe28TrvwXKjpNlhXbHyQ4Yim33mvc9aN1yr9msaN+avWb1Rk75RpYDyjfq+DyLaZ8fV8qyPNxwnOLgnKgcsTS6IcVeX2R1czbrcKQYdUWKQXzUOv1Ue9U8/+Ad3P4H
\ No newline at end of file
+7Vvbkps4EP0aPyYFCDB+jOdam2QztbObzexLSgMyaEdGjpA9dr4+whZXYYwvGNuZKj+glrj16XMkt5oeuBrP7xicBJ+ph0jP0Lx5D1z3DEM3DaMX/zRvsbI4jr0y+Ax7clBmeMQ/kTRq0jrFHooKAzmlhONJ0ejSMEQuL9ggY/S1OGxESfGuE+gjxfDoQqJa/8UeD6RVtwdZxz3CfiBv7Rj9VccYJoPlm0QB9OhrzgRueuCKUcpXR+P5FSKx8xK/rM67XdObPhhDIW9yws3HKES3n7+49/+M//J+OKO/2e07Xb7GDJKpfGP5tHyRuOA1wBw9TqAbt18FzD0wDPiYiJYuDkc05LdwjEmM8Ec6xi9QnP9IsPsieiPO6EvqOiMejwm5ooQy0fbQCE6JePyhB6MAefKS0QvibpA0Er9pouETGEXyWHWA9MkMMY7mOZN0yB2iY8TZQgyRvcZAgiOj00zarxnWwJG2IAeznhihjC8/vXYGgTiQKGyBiGkqACBPhKRsUsYD6tMQkpvMOnSnbJZ6j9Fp6FX7Mjv7E6UTafwfcb6QzINTTovwojnm33LHT7H331uydT2XYCwbC9moD4m4V95Od+InpFPmogfEsPAgYnGk4dAXvUB0csh8xNd0FoML1MXE6iZ1TJDisrxfzTgDrAbGoNSGGEMEcjwr6sjBw0XvvxE4R2DDbkrgQVsE7iv+zwip7cbBbRDaTJo6uqEwmYPNMoyNqKUtzOuv3wP9+r8/RtGf4vDuKXg3aEqtrphV99Q5Yt0ygYPwUM+wlyH/zMSRz5e+sX9M44lc6KDwqcA2s2wIh73IuZRSeWWtkqzNIGxOOJCckhCu31cIp5sVhLPa4puu4DSE7ssGmEb4gjGydO3EMHJ+Z02s07qNmmie1GrD2IVrM8hCHAWXyrayIoK+3rUiqkvAM6JbJE7lOcK1Qj/QkH76SdEP7LQkweFlL0nK0133BBzUOHjHv+FdTXcCFrb4JrFcNnIJgLiZZQCWrUW+ld4hMW6XyEhSD1m64SnXU516OJA+mA31wT4pfTAVfZi55DtD7uyyGF+eci1D/dd/5ClX3+DhM6L8gShkNaTQwfNp8tQHKia+LGZso5TqtUuxIN23OqsUDulj7B4hViU3n1fLZ8HRaHJZHC3PyifAUa3Gw+c2Le+QlY8be87IB5IGu6E0WMeRBqskDTYohaAEpi1psBVpcKEbICVaowBO4kN3QbAIWwY2q8LzKsA/PacGITj+Muy/TLm4DEqQlRsy1pZB3YZ0mFYJD02VDrtCOcqKfjjlcBSE7j88MDpfKBiJV+RFCCDBfhijhsIl74axI7ALyQfZMcaet6SamATwT/icivQkDrjlu1jDnnUdX0sIUIJUCkWyFxPSGM3C9kxi2mo/jlEu2ETDXnu7NEAFdFABaJmHh8tjaQqgX5Ms1Rug2wNqVmy7Ve26tQeoqqEKkrHsTXaXq7TGRALay5dxVDmpD0p5CV3NS1RFfb81J6lr0JNec9Yj3ThYSwtRXQ3V/jGXoYb6L/13QMEqgGB1jIGaSY2QWOey6KKh6MrdptFUndtTY72sxhWLSl2r8IrTWja/Qe3dGq/Ue3l/X5UUs+N5C6iKeUUwipdSZ8fWFPTma62O5yvQYNWQ/DMVrw8JQYT6DI7jBW8u3VDoy+UhNqKE5yhJfTRELV9c2LB8rRg4LSO7KEK2gVdGa7Ks/gs6EQEqLhbsjuVHnb3OVn5SyM9HftSl2pv87IfsqciPWrnXtfx0JjGqEp+vxGyfTepaYhoE4pvEbIXsqUgMUIB8+5jmCB/TgIr6mboi+1Opn7Fq5PYIO8TGRoy23yHW3jtWvnxKWxts5nuQDNxzm3j9t0BpOVnaaFZOtnsoNt1rPnihdcO9ZrOkfWv2mtULOcULWQ4oXqjlehbTvjyuFGW5v6Gc4uCcKJVYGgchxV5fZB2pNutwpBi0RYpeXGqdfKq9Gp598A5ufgE=7ZptV+MoFMc/TV5OTwJ56ktbdZwHz7jTPbv6ag+TYMJIQ5dQbf30Cw0kJsRWZ0w9q1VPD1zILXD//HiIDpzOVx85WuTnLMXUAW66cuCxA4DnA+CoPzddV5Y4DitDxkmqKzWGGbnH2uhq65KkuGxVFIxRQRZtY8KKAieiZUOcs7t2tWtG29+6QBm2DLMEUdv6N0lFrq1eOG4KzjDJcv3VMYiqgjkylXVPyhyl7O6BCZ44cMoZE1VqvppiqgbPjMtfX8iHcXw1+5N+/edbfFaG558nHypnp895pO4Cx4V4Wdd+5foW0aUeL91XsTYDeJcTgWcLlKj8nRSJAye5mFOZ82TymhXiFM0JVfr4wubkBsnnZ5QkN7K0FJzd1AMPVH1C6ZRRxmU+xddoSWWXJikqc5xql+UNFkluMmbUXZnJKCpLndYtx1zgVSfUO8bJq4MnVY/ZHAu+ls9pL2Cs460FD0Kdv2vkA2Ntyx8oxzNGpCWb1b6bsMiEjswzohRaUTo7uuBspVrtgPDfpZLgBK8E5gWijcWKJWfLIt2MsxrB34qsKp1pz25vpFthHCpa0Pgx0YoiK1qe3xOtYKhgxTtGnXGRs4zJQH1lbKGH5ycWYq3hiZaC/focg9IiEM+wuMCcyC5hrkJMikwXlmzJE/xIIS4Mwv1uBGWU+PpSdWIEApO/0p3aZI5Xrdy6NVFxanH6KYGXA7lp7+7ZUXV6mz/YrySOKRLktt26PlnoRy8Yke1uFDhuK9AHftuFHvDqqY646mb8ut4870l0kN/+/ugQeB2WvzodKhG2onWLeEHK/B2Ew3eDVjhgZC+tew6H/1ZpvSKignUU6GzNapluUK0y+yK1Ef9uVD+io99EdQjaOPDDjq50KLqothwFcdtR4EX7ZX5sUeTi+7fLK0vMcgKLtjoRJVkh0wlWC4I0qGlO5HnpSBfMSZqqxyccl+Qe/aihsVC92fQvmDjBsfIltV9WAvRqaZvNfcEK3NnvG9NuVmmnsWoGEzLmrBh42w/dzlIBbTZFPWiCQ6EJ2mhSM9NgvAHTSWOdJEt+W5+jGpJZp6oXx1o3alu5tZ14FiANy7yHIBsF+0KZd335+eOnI3fhRvefLs7C8I+f2Ozyd5IsHARkterMQgrDofjT23vXwo83BiN5MBh5lmhtBHXB0sHI0wllE6mHNr1Uai/yj94x1HPG1b7N7CsZVQPUnhTf2Q8mZw1wz1nBeuaEypt2OACenrryx9QzgsuFWJQOCOCR/JBxUx+qQjnKGMsoRgtSjhI23xQk5abq6XXVBJmsGxGAycNm6Habs8KL49PrbO1A7NlbO28gfvZq1N5oTympungQ63axgtcT62DLOwjbxHR7ToKwR59gKH3aV6/yfDRSvwdZPpmhSpTj8RthKIx3b0H3y9BgC0NBdBDr8xg6nYbh/5mhfuc2zXd79LlXhtovRg76fL/6DLzO9eI+1/je9gJ7E1pieULnlijf3mVv1D2jej0ngqEue3tpET1Oi8PW69m02NfWazh9dmjh9+hzr7SAlvgOF36vceG39TXrzhs/MMxr5jDo4NQFbRcDX/nZbxw0PN/+Sjbe30Ims80/lFWha/4tD578Bw==7Vpdc9soFP01eqxHgD7sx9hJmp1uN5l4djd9JBKRSJBwEY7t/voFC0mWUGP3Q85O4jjjgQvCcM/hcC+2g2bZ+qPAi/QzjwlzoBuvHXTuQAg8CB3978ab0jIeB6UhETQ2nRrDnH4jxuga65LGpGh1lJwzSRdtY8TznESyZcNC8FW72wNn7U9d4IRYhnmEmW39l8YyNVYQTJqGK0KT1Hz0GIZlQ4arzmYlRYpjvtoxoQsHzQTnsixl6xlh2nmVX8jf6fThn0eWrb9e5ZNbmVCUfCgHu/yRR+olCJLL3zu0AfcZs6Xxl1mr3FQOXKVUkvkCR7q+UiRx0DSVGVM1oIoPPJeXOKNM8+MTz+gTVs/PGY2eVGshBX+qHQ91f8rYjDMuVD0mD3jJ1JKmMS5SEpshiycio7SqVF53VSVhuChM2cycCEnWHaj3+AnU4CnWE54RKTbqOTMKnBi8DeFhYOqrhj5obGzpDnNAZcSGskk9dgOLKhhkfgAlZKF0dXYj+FrP2oHB16Wm4JSsJRE5Zo3FwlLwZR5v/aw9+EvI6ta5GdntRboF41BooWqcCq0wtNACXg9a/lBgeXu8zoVMecIVUH9yvjDueSRSbox44qXkP7/HkLJILBIib4igaklEaIhpnpjGgi9FRL7TSPJKwr0uggolsbnTixhBv6p/MYvaVs7XrdqmtVFJbOn0IcArR27nu393lIt+oV/QTyRBGJb0uT25PlaYR284VdNuCDhpE9CDXnsI4+/yqQ636mn8PN38g7RBffj70wYfdJT81bUhsMB6xiKnRfoO0PBcv4UGCu1z9bhohG9VqddUlkId+qZa67QqNzKtK8dS6eBAlfYHUekAtqXACzqkMkB0VdoayB+3B/JBeFS5H1sKcnN7fffFYrLavLJNTcxokqtyRPRZoAx6i1OVKJ2ZhozGsX58KkhBv+H7WjAWejHb5flTxz/XYyniFyX7QM3rKqrPeU46gX5l2q9TZtCxngaXCnKeDxzvI7dzSiBbl8IeWUJDydLEAlPvykrBG1G6aKzTaCme6/ypUTErm/rtktYF7UXNelntLHGsdAzsitjIf1UZA+MDdQwNomM166pDFAVHlZ8qotrRHzCBI5USjIBFW1uDusrS0ZHDJcqWpB656ZWl9hH/3duFete4Zuxq/xWcaQ+1t8Utv+dq30D3M895z67Q9WoeDkSXl676q/pVlEulXBQO9NGZelPA6TfdoRglnCeM4AUtRhHPtg1Rse16+VBOQRXrSfhwujsNM28wlH6CTlwHx8CO68AxBRQAi6QzRss1ntj6Mlvh67F1sAMeBm3NdHvSQNRDUDgYQe1rV5UejfTrxMuDVVSzcjJ5IyqKxvuj0COrqH2zVBAVZQqLoW/vriLshlmg50w76l0FsC8rTlnB/yYr8A9MCsBAtxt+h64uPG5WYN9KmIDr7UvF5BWVYhP9cf/oX0zoVXZ9ffeJXc//Cj/YGdop+H2/wa/X+Q7Ec3viiqGC315+npKzEz937tNB51uhYyZnvfy0c7MTP98vP0PU4ac3nH6qavNrsjI2a36Thy7+Aw==7Vxdc+I2FP01PDZjS/6Ax4Ukzc52O+nQmU37psWKcWMsRogA+fWVsQTYko0AGxyWl4wl2Y50z9G50tU1HTiYLH+naDr+TgIcd4AVLDvwvgNA14b8b1qxyipcy8sqQhoFWZW9rRhGH1hUWqJ2HgV4lruRERKzaJqvHJEkwSOWq0OUkkX+tlcS5//rFIVYqRiOUKzW/ogCNha1ttfbNjzhKByLf90FftYwQfJmMZLZGAVksVMFHzpwQAlh2dVkOcBxajtpl+y5x5LWTccoTpjJA90QDX7O+t//+nia/7B+DPvJ6uU3gc47iudiwKKzbCUtsBhHDA+naJSWFxzkDuyP2STmJZtfvpKEPaJJFKcAfyOT6A3x54dxNHrjrTNGydvGciC9P4rjAYkJ5eUAv6J5zHvfD9BsjAPxytkbZqOxLEizWbwQxmg2E9ei55gyvCw1ib0xNCcoJhPM6IrfIh4APYGNICdnZ1ZebKGG8p7xDsobUJGgV7h59xYBfiFAOAAQR7E/JfMkWNsmHTWhbExCkqD4D0Kmwkb/YcZWYu6gOSPHIwR5DUM0xOwZ04gPCdMU+igJReOMzOkIlzTiRM5gpwgjR4SuXsQg1oV/0sKdK4v3y93G+5UoZd2ThOkA6A26D/3HDf44UOZvAX1uzHWfK4zuCmFZD7ziPk/PJopjxKL3fD90zBCPPpOI93DDQtizcyyEXjf/CgFI9lSBX5tuHE85V9GAR8opw8HktfYePp6kDmnrULzZ0qpFjkPr2zN+2d16FACCvO2B7ysKYDsaBXCbEgBPQaOPRm+/BBiubbUMDNtX0Hj68kzJcqUgwYfN8uZGcRQm/HrEh4+5evVT40R8afFFNEyiIEgf71M8iz7Qz43pp+lUX4/F7Xfc+/RdXNVnwtqKKiYkwQXPKqv2I74DISWM6xhJGnSwQHWwOv8KmwIUGCx4Qj6ppqWDFwtNgdZ2eWduFBsWjOJpaG5prNKtcC2nWcU5h1UqACm3Vd5Utm1EH78x+qi+chBHOJ2s7VFmo3lbwYPy2axOXv+cagxU36iYnW8XpuklHyuKYxyTkKJJKqlyxVpse9427EUpWmK5wDVEbUddTbdCeeI0jOwqD9meedXYrgeofrYlAuTm9Me7sPx0r1t+/HbLT+8mPzUj2xL5kQuyFsnPpSQG2lctMdDSm7slEgPBTWJqRrYtEmOw8dzaRYmCHxH2xcuIvexc78RbeWkbbk0LMtp6IN5VseDqKLISdG51fBiYBohdPQeNA8SmFPsKhl/db/++h8+RD/GfaGUt/r4dHTRMDa3RNczQ3neeowPHKbyivqODqtHrjw6qBO4KotXFowOocTGNRau1aKib6O3RAbxuMIpHB451aTCqznGufGYUwYDOpcHoXqtrPGKNd0l3utdNlsQJTnSTrjzHk4T0e3fQsa2uC3wb2r7vGnlN5b2OV3ABxRcJXJtyv7Zx3MJ0m3X66ZbvFCZ/z2znVUdEQ28kNaLRIvk1ktsK8E1PztQjxqYCG/rOGgQ2rhCE/OkBuDAGaghihikfNa97uWo0hP1ltuPFAFC3SyVy3Zw8F5MPoExkPUfygd4qBqe6p1ulApAWJh/oe6vu7z5paL6CB20Izeu7p569Kma/heYPQvb8oXl99wzOdS8jQJdKPtD2VQ7qWuWn12r5AQa7mJv8HIRsS+RHAtki+bmYxKg7lGuSmAzY9kqMQRbwTWIOQrYtEmOw8aw3+eDzJRIcE0o/ywmz3PbtjZ2fmnygj3GDYsDAcfKvKIlxq2fVsBAslzHBM33mpllBDWX4q2o6tNK/HBiDtxwj1yKTlOpPnVXXOJvQY5s+amvA9sAztD043fZ68VfjaxvetykroAneO2bHHnXwXm97v2E/e0vyq83PeqqbrfAjtftZzytwt+geTf2s7+QPu3lFU35Wz/mqZIvPu7YEJ/A3/+sWFyJzhXOon8x+gczgWDK7BTJ3GyOzfrLf9HtHv8+SbG2swyV77vMkW/f2rJx+LWKUCSNoRVKZTHzYq5rNZJ8VxdCxrbueb6SHtfnkG11N6Oq3YiFqGu+xSz4drHkh6kCzpEaN7y68CIA7s0TL/bTvpB8ayF9Oy27f/vwcfPgf7VvRcqs2EP0aPzYDyIB5bJzcttPbadp0btOnjgIKqJGRrywndr6+kpGwQYCxHTDxZCYPSAJZ7Dl7tCs2IzCdrX5icJ78RiNERo4VrUbgZuQ49thxRvLPitZZz2TiZR0xw5G6adtxj9+Q6rRU7xJHaFG4kVNKOJ4XO0OapijkhT7IGH0t3vZESfFX5zBGRsd9CInZ+zeOeKJ6bS/YDvyMcJyon544fjYwg/pm9SaLBEb0dacL3I7AlFHKs6vZaoqINJ62S/bcl5rRfGEMpbzNA09vfwW/OMuHP13+x/fEmvrfl3c/qFleIFmqF1aL5WttgdcEc3Q/h6FsvwqUR+A64TMiWra4fKIp/wJnmEiAf6Uz/AzF8/cEh89idMEZfc4t58j7MSFTSigT7Qg9wSURq7+O4CJBkZpy8Yx4mOiGNpslGjGBi4W6VitHjKNVrUns3NCCoYjOEGdrcYt6AGiWKXI6YJy1X7dQuxq/ZAdlx1YshopecT73FgFxoUA4ABDT/igShFRNynhCY5pCcrvtvQ6X7CU3HqPLNKo25fbpr5TOVed/iPO18ju45LSILlph/rBz/Y80/pWrWjcrhcWmsVaNZkbIUfVz9kSukC5ZiO4Qw8KAiEmi4TQWo0AMcshixGsGi9ySPQJ2tn7Qa5KNbL2Oq9vbFW9a6wKXpKWbmSSA2Sy3AUCg/D9behPSTjU3GSKQ45fiSqp4ph69o1isMed0YJU4HZSmUAbPniqxNV/G8QS2HUNSXkLyL0Phi0HtLVclCCcJzYZWamarUngKrvAe4jEuGdqzDPGwxxXi4VodaYc9rjT9IwyfURoJCBbzy4LA84oQAM8X2nRmENwGGx+pwofssftls0lwBU/UKsayddjWU4A312K7oMUNQgz8q1yn8+XtbDAPO9e7ul67Eb2jqmvX2qvqWWDw7qqeRyGK6R4o8VdB3pmqe4a0hDBMkMF1Ea7N5WW4JliQnoH9qvKYucfXx7xDCFa8cZrfl1xMgzS/VNjgHhF2vrf0uG5JemyrQnq8CuXxOlOeiYHRN8hSvEgMlMR78yIIkOA4lbiJ95dedy2tg0Ue9KMamOEo2ri82EbwG3zMZX4uObd5F/d65N7IuYSAaaxyMHTMn1KJZyEN0F0HxY2McuFQNB11lw1YZjYwqQC07IrvB2hgAGogKf1k3prfKktW6I3y3LS9kYKSkYBVxfugwkx+V2bSL9FkpoGHOQ3w1yJRAsI2o0+/z7jHaXGUcIEouAUQTE/oFwMz91ogEaCxxUVDcTZzg7b63J0e28DQY4ODtlVhlUlDDHqaVcwstAOrNADSWjHtM+9brmGoKcFIBlOX4K0ZD2rBcM69X5kZjWF2ncyId4WEIEJjBmcy5N3JTgtjO2nrXpTwCulcuyVqu6emLc/Vi8TpGNl1EbI9fuV0hqw/VAEqBgvemeXHTBcvSn78YctPi9zuU34OQnYg8qMDsgHJz7kkBpg54SVJDLCqzT0QiQFmNvgpMachOxSJAQaQA6wS2PN1ZnhlAj1WCehQcP/3JKeaiSd+TwL6Y0F+bOAUp+j4exIwsy/5qTpCRLwT+2i7w2GFAkP4Sg3MHGm3VOBpY4GLQqFcK3D+cg0wabDwZ/HWGVRZ1y7tVWVQk4KcqMpOWSnGpTLDmtotU96dkrzrN+tL3oOOqX1Gmh4WaNWwuoHTdm0RTHumn6tMZTwpiWxgHUdgzy9P5PZKYO2InwSuqePaX1NbWbJVu/fo4i/RPp72+wXeayvwHflHUBJ460j/cMuVj8C96tlD7I49pLrkzx98+FLyE7/P+KVtlWJP9DZU+8PIv3lSNogDlg/uC30esLQN5e2aj5knusKkXEx4rCsEpcpfoKtO+nKFgZ41Fl3ho3lCn7sCaBv0ZIeS3We1AJRjldZ5rdvVviCa23/FzG7f/kMruP0f
\ No newline at end of file
diff --git a/images/schema-boost.png b/images/schema-boost.png
new file mode 100644
index 0000000..1e6fa28
Binary files /dev/null and b/images/schema-boost.png differ
diff --git a/images/schema-haproxy.png b/images/schema-haproxy.png
new file mode 100644
index 0000000..9e1311a
Binary files /dev/null and b/images/schema-haproxy.png differ
diff --git a/images/schema-varnish.png b/images/schema-varnish.png
new file mode 100644
index 0000000..6cca997
Binary files /dev/null and b/images/schema-varnish.png differ
diff --git a/images/varnish-logo.png b/images/varnish-logo.png
new file mode 100644
index 0000000..205c904
Binary files /dev/null and b/images/varnish-logo.png differ
diff --git a/images/with-proxy-protocol.png b/images/with-proxy-protocol.png
new file mode 100644
index 0000000..a8717ee
Binary files /dev/null and b/images/with-proxy-protocol.png differ
diff --git a/images/without-proxy-protocol.png b/images/without-proxy-protocol.png
new file mode 100644
index 0000000..ae24bf5
Binary files /dev/null and b/images/without-proxy-protocol.png differ
diff --git a/snippets/haproxy.03.png b/snippets/haproxy.03.png
deleted file mode 100644
index dd8166a..0000000
Binary files a/snippets/haproxy.03.png and /dev/null differ
diff --git a/snippets/varnish.01.png b/snippets/varnish.01.png
deleted file mode 100644
index 5563af1..0000000
Binary files a/snippets/varnish.01.png and /dev/null differ