<div class="gmail_quote">On Sun, Nov 20, 2011 at 4:10 PM, Jo Galara <span dir="ltr"><<a href="mailto:jogalara@gmail.com">jogalara@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I got the following setup (on a Debian Squeeze 64-bit machine): Internet<br>
<-> Varnish <-> Apache<br>
<br>
What I want to achieve is that Varnish forwards all requests from the<br>
Internet to the Apache backend (if its not in the cache), uses the<br>
headers from the backend to choose whether or not and how long to cache<br>
the file and then send the file to the browser with the _same_ headers<br>
it got from the from the backend.<br></blockquote><div><br></div><div>In vcl_fetch you have all the headers available with beresp.http.<header>. You can set the TTL based on a header. For example:</div><div><br></div>
<div>if (beresp.http.X-Cache-Time) {</div><div>  beresp.ttl = beresp.http.X-Cache-Time;</div><div>  return (deliver);</div><div>} else</div><div>  # default cache time - 30 minutes</div><div>  beresp.ttl = 30m;</div><div>
}</div><div><br></div><div>This way, backend must return the X-Cache-Time with something like "30s", "1m" or anything varnish understands (no cache at all would be "0s").</div><div><br></div>
<div>If you don't unset the header on vcl_deliver, varnish will deliver the exact headers received on beresp.</div><div> </div></div>-- <br>[]'s<br>Hugo<br><a href="http://www.devin.com.br">www.devin.com.br</a><br>