Hello!

Many thanks for your answers! :-)

@Dridi:

You are right, writing a specific VMOD would be the ideal solution but unfortunately I am not qualified for the job. ^^

By the way, I would like to thank all the people who are working hard to enhance and maintain Varnish.

This software is absolutely awesome!

@Xavier:

Before considering HAProxy, I searched if quick and dirty hacks were possible with iptables to limit simultaneous connexions and tc to shape the traffic.

But, after a quick reading of the documentation of HAProxy, it became clear that - as you said - it is a reliable solution.

So, thanks the for the hint!

Have a great day!

Le 16/06/2020 à 00:17, Xavier Leune a écrit :
Hello,

@tranxene50 if implementing a vmod can be very challenging, using haproxy can be a great solution here. Please refer to this blog post: https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/ (or in french ;) https://www.haproxy.com/fr/blog/four-examples-of-haproxy-rate-limiting/ ). 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.

Regards,

Le lun. 15 juin 2020 à 20:02, Dridi Boukelmoune <[email protected]> a écrit :


    Bonsoir,

    Unfortunately we don't have any sort of queuing on the backend side,
    so besides implementing your own backend transport from scratch in a
    VMOD there is currently no solution.

    Cordialement,
    Dridi

    On Sun, Jun 14, 2020 at 2:32 AM tranxene50
    <[email protected]
    <mailto:[email protected]>> wrote:
    >
    > Hello!
    >
    > Please forgive my bad English, I live in France.
    >
    > Summary: how to cache - with Varnish - Open Street Map PNG
    images without overloading OSM tiles servers?
    >
    > The question seems related to Varnish backends and
    ".max_connections" parameter.
    >
    > A far as I know, if ".max_connections" is reached for a backend,
    Varnish sends 503 http errors.
    >
    > I understand the logic but would it be possible to queue these
    incoming requests and wait until the selected backend is really
    available?
    >
    > backend a_tile                  {
    >   .host                         = "a.tile.openstreetmap.org
    <http://a.tile.openstreetmap.org>";
    >   .port                         = "80";
    >   .max_connections              = 2;
    > }
    >
    > If Varnish have, let's say 100 incoming requests in 1 second,
    how can I handle this "spike" without overloading the backend?
    >
    > All my google searches were "dead ends" so I think the question
    is poorly formulated.
    >
    > Note 1 : using [random|round_robin] directors could be a
    temporary solution
    > Note 2 : libvmod-dynamic is great but does not limit backend
    simultaneous connexions
    >
    > Many thanks for your help!

_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to