Streaming of requests with Range

Lasse Karstensen lkarsten at
Mon Dec 2 13:11:25 CET 2013

On Wed, Nov 27, 2013 at 05:20:52PM +0000, Duarte Bacelar De Begonha De Meneses wrote:
> I need to cache requests of chunks of files using the "Range" HTTP header. The problem is that in some cases  the files are very large, and Varnish  downloads the entire file from the backend before passing the requested part to the client.

Mind that if the files are very big, or the client plays back the files in real time
(sound/video), you might need to increase send_timeout a lot.

> After checking the change logs of the latest releases (up to 3.0.4), I suppose this branch hasn't been merged with the main branch. Is the 3.0.2s the latest release supporting streaming?

Correct, the 3.0.2s is the latest release in that branch.

Similar functionality is available in upcoming 4.0. There should be a tech
preview of it out soonish, if you don't want to pull from git master.

> Also, going a bit offtopic, I feel a bit confused about how Varnish processes HTTP cache-related headers, such has If-Modified-Since, Cache-control, etc.
> For example, I saw that it respects the "If-Modified-Since" in a transparent way, and returns 304 if needed. What would be the best way to override this behavior and ignore the header? Would it be to simply unset the header in vcl_recv?

Filter the conditional header in vcl_recv is the best way.

With regards,
Lasse Karstensen
Varnish Software AS

More information about the varnish-misc mailing list