<div dir="ltr"><div dir="ltr">Hello,<div><br><div>@tranxene50 if implementing a vmod can be very challenging, using haproxy can be a great solution here. Please refer to this blog post: <a href="https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/">https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/</a> (or in french ;) <a href="https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/">https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/</a> ). The very first step is about setting a maximum connections number and a queuing. Using haproxy as your backend would require low engineering and a minimum overage.</div></div></div><div><br></div><div>Regards,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 15 juin 2020 à 20:02, Dridi Boukelmoune <dridi@varni.sh> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sun, Jun 14, 2020 at 2:32 AM tranxene50<br>
<<a href="mailto:tranxene50@openvz-diff-backups.fr" target="_blank">tranxene50@openvz-diff-backups.fr</a>> wrote:<br>
><br>
> Hello!<br>
><br>
> Please forgive my bad English, I live in France.<br>
><br>
> Summary: how to cache - with Varnish - Open Street Map PNG images without overloading OSM tiles servers?<br>
><br>
> The question seems related to Varnish backends and ".max_connections" parameter.<br>
><br>
> A far as I know, if ".max_connections" is reached for a backend, Varnish sends 503 http errors.<br>
><br>
> I understand the logic but would it be possible to queue these incoming requests and wait until the selected backend is really available?<br>
><br>
> backend a_tile                  {<br>
>   .host                         = "<a href="http://a.tile.openstreetmap.org" rel="noreferrer" target="_blank">a.tile.openstreetmap.org</a>";<br>
>   .port                         = "80";<br>
>   .max_connections              = 2;<br>
> }<br>
><br>
> If Varnish have, let's say 100 incoming requests in 1 second, how can I handle this "spike" without overloading the backend?<br>
><br>
> All my google searches were "dead ends" so I think the question is poorly formulated.<br>
><br>
> Note 1 : using [random|round_robin] directors could be a temporary solution<br>
> Note 2 : libvmod-dynamic is great but does not limit backend simultaneous connexions<br>
><br>
> Many thanks for your help!<br>
<br>
Bonsoir,<br>
<br>
Unfortunately we don't have any sort of queuing on the backend side,<br>
so besides implementing your own backend transport from scratch in a<br>
VMOD there is currently no solution.<br>
<br>
Cordialement,<br>
Dridi<br>
_______________________________________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org" target="_blank">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" rel="noreferrer" target="_blank">https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc</a><br>
</blockquote></div></div>