<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I read the sample config that you sent but Can I use "bereq.url"  in this way:<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
for example I want to shard my requests for live streams based on the url's that clients enter, for example if the following url's are different live streams (stream1 and stream2 are the name of different streams ):<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif">```<br>
</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif">mydomain.com/live/australia/stream1/chunk_43212123.ts</span>
<div style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif">
<span>mydomain.com/live/australia/stream2/chunk_43212123.ts</span></div>
<span style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif"><span>mydomain.com/live/australia/stream3/chunk_43212123.ts</span></span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
```</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Now think I want just the url excluded with chunk file becomes hashed and sharded:<br>
Just this part: "<span style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif">/live/australia/stream{1,2,3}/</span>"<br>
Not :"<span style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif">/live/australia/<span style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif">stream{1,2,3}</span>/chunk_43212123.ts</span>"<br>
<br>
So by adjusting " p.set(by=KEY, key=bereq.url) " it would shard "bereq.url",  it means "<span style="color:black;font-size:12pt;font-family:Calibri,Arial,Helvetica,sans-serif">/live/australia/<span>stream{1,2,3}</span>/chunk_43212123.ts</span>"<br>
<br>
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> varnish-misc <varnish-misc-bounces+hrhosseini=hotmail.com@varnish-cache.org> on behalf of Hamidreza Hosseini <hrhosseini@hotmail.com><br>
<b>Sent:</b> Sunday, August 1, 2021 4:17 AM<br>
<b>To:</b> varnish-misc@varnish-cache.org <varnish-misc@varnish-cache.org><br>
<b>Subject:</b> Best practice for caching scenario with different backend servers but same content</font>
<div> </div>
</div>
<style type="text/css" style="display:none">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Hi,<br>
I want to use varnish in my scenario as cache service, I have about 10 http servers that serve Hls fragments as the backend servers and about 5 varnish servers for caching purpose, the problem comes in when I use round-robin director for backend servers in
 varnish,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
if a varnish for specific file requests to one backend server and for the same file but to another backend server it would cache that file again because of different Host headers ! so my solution is using fallback director instead of round-robin as follow:</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
```</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
In varnish-1:
<div>    new hls_cluster = directors.fallback();</div>
<div>    hls_cluster.add_backend(b1());</div>
<div>    hls_cluster.add_backend(b2());    </div>
<div>    hls_cluster.add_backend(b3());    </div>
<div>    hls_cluster.add_backend(b4());    </div>
<div>    hls_cluster.add_backend(b5());    </div>
<div>    hls_cluster.add_backend(b6());    </div>
<div>    hls_cluster.add_backend(b7());    </div>
<div>    hls_cluster.add_backend(b8());    </div>
<div>    hls_cluster.add_backend(b9());    </div>
<div>    hls_cluster.add_backend(b10());</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>In varnish-2:</div>
<div>    new hls_cluster = directors.fallback();</div>
<div>    hls_cluster.add_backend(b10());</div>
<div>    hls_cluster.add_backend(b1());</div>
<div>    hls_cluster.add_backend(b2());    </div>
<div>    hls_cluster.add_backend(b3());    </div>
<div>    hls_cluster.add_backend(b4());    </div>
<div>    hls_cluster.add_backend(b5());    </div>
<div>    hls_cluster.add_backend(b6());    </div>
<div>    hls_cluster.add_backend(b7());    </div>
<div>    hls_cluster.add_backend(b8());    </div>
<div>    hls_cluster.add_backend(b9());    </div>
<div><br>
</div>
<div><br>
</div>
<div>In varnish-3:</div>
<div>    new hls_cluster = directors.fallback();</div>
<div>    hls_cluster.add_backend(b9());    </div>
<div>    hls_cluster.add_backend(b1());</div>
<div>    hls_cluster.add_backend(b2());    </div>
<div>    hls_cluster.add_backend(b3());    </div>
<div>    hls_cluster.add_backend(b4());    </div>
<div>    hls_cluster.add_backend(b5());    </div>
<div>    hls_cluster.add_backend(b6());    </div>
<div>    hls_cluster.add_backend(b7());    </div>
<div>    hls_cluster.add_backend(b8());    </div>
<div>    hls_cluster.add_backend(b10());</div>
<div><br>
</div>
<span></span>```<br>
But I think this is not the best solution, because there is no load balancing despite, I used different backend for the first argument of fallback directive,<br>
What is varnish recommendation for this scenario?</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
</div>
</body>
</html>