<div dir="auto"><div>Hi,<div dir="auto"><br></div><div dir="auto">Yes, labels are going to access the same cache , exactly like a reloaded vcl is going to use the same cache as the vcl it replaced.</div><div dir="auto"><br></div><div dir="auto">So, sending one request on any domain is going to work, but wouldn't it be more straightforward to just have the ban block in the main vcl, before you dispatch the request to a sub vcl?</div><div dir="auto"><br></div><div dir="auto">Cheers,</div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 19, 2019, 15:07 Adrien Bigot <<a href="mailto:adrien.bigot@smile.fr">adrien.bigot@smile.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  

    
  
  <div>
    Hello,<br>
    <br>
    I plan to use labels on a Varnish stack in front of multiple
    backends.<br>
    I have a question about ban with multiple labels. <br>
    <br>
    My main.vcl will route requests in function of Host header for
    example like this : <br>
    <br>
    if (req.http.host == "<a href="http://front.mydomain.com" target="_blank" rel="noreferrer">front.mydomain.com</a>") {<br>
          return (vcl(l_varnish_fronts));<br>
        }<br>
        if (req.http.host == "<a href="http://api.mydomain.com" target="_blank" rel="noreferrer">api.mydomain.com</a>") {<br>
          return (vcl(l_varnish_api));<br>
        }<br>
    <br>
    <br>
    When we want to ban objects we do it with a HTTP BAN method on each
    varnish server. Varnish handle it the BAN request like that  in each
    label's VCL file :<br>
    sub vcl_recv {<br>
            if (req.method == "BAN") {<br>
    <br>
            if (req.http.Cache-BanExpression) {<br>
                ban(req.http.Cache-BanExpression);<br>
            }<br>
            return (synth(200, "Banned"));<br>
    }<br>
    <br>
    <br>
    My question is if I want to purge contents like this : <br>
    <br>
    curl -XBAN --header 'Cache-BanExpression:
    obj.http.Cache-Tags-TeamCompetitionReference ~ (^|,)6847(,|$)'  
    <a href="http://myVarnishIP" target="_blank" rel="noreferrer">http://myVarnishIP</a><br>
    <br>
    Will them be banned for all my Labels (if I include the proper vcl
    code in main.vcl), or do I have to make a request for each label
    like : <br>
    curl -XBAN --header 'Host: <a href="http://front.mydomain.com" target="_blank" rel="noreferrer">front.mydomain.com</a>' --header
    'Cache-BanExpression: obj.http.Cache-Tags-TeamCompetitionReference ~
    (^|,)6847(,|$)'   <a href="http://myVarnishIP" target="_blank" rel="noreferrer">http://myVarnishIP</a><br>
    curl -XBAN --header 'Host: <a href="http://api.mydomain.com" target="_blank" rel="noreferrer">api.mydomain.com</a>'    --header
    'Cache-BanExpression: obj.http.Cache-Tags-TeamCompetitionReference ~
    (^|,)6847(,|$)'   <a href="http://myVarnishIP" target="_blank" rel="noreferrer">http://myVarnishIP</a><br>
    <br>
    <br>
    In fact, I want to know if the cache is mutualized between labels ?
    If yes, is a solution exists to purge contents in all labels without
    sending multiple BAN requests ?<br>
    <br>
    Thanks in advance.<br>
    <br>
    Best regards,<br>
    <br>
    <div>-- <br>
      <br>
      Adrien Bigot<br>
      <div>
        
      </div>
    </div>
  </div>

_______________________________________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org" target="_blank" rel="noreferrer">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" rel="noreferrer noreferrer" target="_blank">https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc</a><br>
</blockquote></div></div></div>