<div dir="ltr">Hi,<div><br></div><div>We are using varnish for multiple round robin backends. as shown below:-</div><div><br></div><div><div><font face="monospace, monospace" size="1">backend d1 {</font></div><div><font face="monospace, monospace" size="1">    .host = "172.16.84.69";</font></div><div><font face="monospace, monospace" size="1">    .port = "9802";</font></div><div><font face="monospace, monospace" size="1">}</font></div></div><div><div><font face="monospace, monospace" size="1">backend d2 {</font></div><div><font face="monospace, monospace" size="1">    .host = "172.16.84.68";</font></div><div><font face="monospace, monospace" size="1">    .port = "9802";</font></div><div><font face="monospace, monospace" size="1">}</font></div></div><div><div><div><font face="monospace, monospace" size="1">backend r1 {</font></div><div><font face="monospace, monospace" size="1">    .host = "172.16.84.69";</font></div><div><font face="monospace, monospace" size="1">    .port = "9802";</font></div><div><font face="monospace, monospace" size="1">}</font></div></div><div><div><font face="monospace, monospace" size="1">backend r2 {</font></div><div><font face="monospace, monospace" size="1">    .host = "172.16.84.68";</font></div><div><font face="monospace, monospace" size="1">    .port = "9802";</font></div><div><font face="monospace, monospace" size="1">}</font></div></div></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="arial, helvetica, sans-serif">Our requirement is if the urls is of form </font><font face="monospace, monospace">/d/r</font><font face="arial, helvetica, sans-serif"> we will send the request to one of the backends given by </font><font face="monospace, monospace">r.backend()</font><font face="arial, helvetica, sans-serif"> else we will send the request to </font><font face="monospace, monospace">d.backend()</font><font face="arial, helvetica, sans-serif">. If the url is of form </font><font face="monospace, monospace">/d/r </font><font face="arial, helvetica, sans-serif">but contains a header of T</font><font face="monospace, monospace">ype = p</font><font face="arial, helvetica, sans-serif"> then we will bypass varnish and send the request directly to backend. The vcl looks something like below:-</font></div><div><br></div><div><font face="monospace, monospace">sub vcl_recv {</font></div><div><span style="font-family:monospace,monospace"> # ...        </span></div><div><div><font face="monospace, monospace">   # Don't cache r requests with type = p</font></div><div><font face="monospace, monospace">   if(req.http.Type == "p") {</font></div><div><span style="font-family:monospace,monospace">      </span><span style="font-family:monospace,monospace">req.backend_hint = r.backend();</span><span style="font-family:monospace,monospace">     </span></div><div><font face="monospace, monospace">       return (pipe);</font></div><div><font face="monospace, monospace">   }</font><span style="font-family:monospace,monospace">   </span></div><div><br></div></div><div><font face="monospace, monospace">    </font><font face="monospace, monospace">if(req.url ~ "^/d/r/") {  </font></div><div><font face="monospace, monospace">        set req.backend_hint = r.backend(); </font></div><div><font face="monospace, monospace">    } else  {</font></div><div><font face="monospace, monospace">        set req.backend_hint = d.backend();</font></div><div><font face="monospace, monospace">}</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">Can some one please let me know  if the below code is the best way to achieve what I am trying to do? </font></div><div><span style="font-family:monospace,monospace">if(req.http.Type == "p") {</span></div><div><span style="font-family:monospace,monospace">      </span><span style="font-family:monospace,monospace">req.backend_hint = r.backend();</span><span style="font-family:monospace,monospace">     </span></div><div><font face="monospace, monospace">       return (pipe);</font></div><div><font face="monospace, monospace">   }</font><span style="font-family:monospace,monospace"> </span></div><div><font face="monospace, monospace" size="1"><br></font></div><div><br></div></div>