etc
etc

Reputation: 565

Set Varnish headers conditionally based on client.ip

How would I use client.ip as a conditional in setting headers in the fetch section of a Varnish 3.0 VCL? I have some troubleshooting headers that I like to set to solve caching issues, however, I don't want them publicly visible. I'd love to be able to whitelist the headers for my ip address only.

Is there any way to access client.ip in _fetch?

Upvotes: 1

Views: 942

Answers (1)

Brian van Rooijen
Brian van Rooijen

Reputation: 2016

You can best set all troubleshooting headers in you _recv without any conditions and remove them in you vcl deliver. this way you dont need to add the same ip check on every conditional header

if you want to use an ip range you can use the following code

acl debug {
"your ip adress1";
"you ip adress 2";
}

in you vcl_recv

if (!client.ip ~ debug) {
set req.http.x-debug = "debug";
}

in you vcl_deliver

if(!req.htt.x-debug){
remove resp.http.debugheader1;
remove resp.http.debugheader2;
}

Upvotes: 2

Related Questions