Is it possible to prevent caching based on the size of the backend response in Varnish?

Viewed 1300

We're caching for a problematic IIS server that sometimes just sends empty responses (0 bytes) instead of proper ones. Caching these responses would be a disaster, and we have no way of fixing the problem as it's not our server. Instead I'd like to instruct Varnish to not cache responses from the backend if they are empty (0 bytes).

Reading the VCL reference (https://www.varnish-cache.org/docs/4.0/reference/vcl.html) I can't see any obvious way of solving this.

Can it be done?

2 Answers

If you wanted to use it as a integer to see if greater then or less then value, use std.

import std; 

if (std.integer(beresp.http.content-length, 0) < 500) {
  #logic here 
}
Related