Varnish: cache only specific domain Varnish: cache only specific domain apache apache

Varnish: cache only specific domain


(edited after comment) It's req.http.host, so in your vcl file (e.g. default.vcl) do:

sub vcl_recv {  # dont cache foo.com or bar.com - optional www   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {     pass;   }  # cache foobar.com - optional www   if (req.http.host ~ "(www\.)?foobar\.com") {     lookup;   }}

And in varnish3-vcl:

sub vcl_recv {  # dont cache foo.com or bar.com - optional www   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {     return(pass);   }  # cache foobar.com - optional www   if (req.http.host ~ "(www\.)?foobar\.com") {     return(lookup);   }}


Yes,

in vcl_recv you just match the hosts that you would like not to cache and pass them. Something like this (untested):

vcl_recv {   # dont cache foo.com or bar.com - optional www   if (req.host ~ "(www)?(foo|bar).com") {     return(pass);   }}


For Varnish 4

replace lookup with hash

default.vcl:

sub vcl_recv {  # dont cache foo.com or bar.com - optional www   if (req.http.host ~ "(www\.)?(foo|bar)\.com") {     return(pass);   }  # cache foobar.com - optional www   if (req.http.host ~ "(www\.)?foobar\.com") {     return(hash);   }}