Why pipe when you could simply have a hit-for-pass object?

In vcl_backend_response you could simply set beresp.uncacheable to
true (return(pass) in vcl_fetch for v3). With such a config you'd hit
your backend twice for all responses of more than 10MB.

Dridi

On Thu, Apr 16, 2015 at 6:05 PM, Jason Heffner <[email protected]> wrote:
> I’m working on updating our Varnish 3 config to Varnish 4 and I was able to 
> figure out how to have the same functionality for almost all of the config. I 
> wanted to find opinions on how to handle large files. We don’t want to cache 
> any large files and had this in place for varnish 3. I’ve read streaming 
> instead of piping was a solution but found nothing to determine this based 
> solely on file size from the backend.
>
> # Varnish 3 config
> added to vcl_recv:
>   /* Bypass cache for large files.  The x-pipe header is
>      set in vcl_fetch when a too large file is detected. */
>   if (req.http.x-pipe && req.restarts > 0) {
>     remove req.http.x-pipe;
>     return (pipe);
>   }
>
> added to vcl_fetch:
>   # don't cache files larger than 10MB
>   /* Don't try to cache too large files.  It appears
>      Varnish just crashes if we don't filter them. */
>   if (beresp.http.Content-Length ~ "[0-9]{8,}" ) {
>     set req.http.x-pipe = "1";
>     return (restart);
>   }
>
> Since req.* is no longer available in vcl_recv this code doesn’t function 
> anymore.
>
> Thanks,
> Jason
> _______________________________________________
> varnish-misc mailing list
> [email protected]
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

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

Reply via email to