Thanks for pointing out redbot.org, its very handy. I used it against my own
heroku site prawn.heroku.com  (examples of how to generate pdfs in rails
with the Prawn, prawn-to libraries), and I noticed that the server times
would vary as I refreshed the page.

http://redbot.org/?uri=http://prawn.heroku.com

the first time I hit it, the server time was considered to be correct, but
subsequent refreshes returned anywhere from 5mins ahead to 6hrs ahead. I
assume this is just at the nginx server, and doesn't mean that the server
time on my rails server is out of sync.

Am I reading this right?

thanks,
-John



> Hi Thomas,
>
> Thanks for the detailed example. It looks like Varnish is assuming a
> default max-age of ~500 seconds since the Cache-Control header is set
> to public but no explicit max-age is specified and the must-revalidate
> directive isn't provided. redbot.org is an invaluable resource in
> debugging these types of issues:
>
> http://redbot.org/?uri=http%3A%2F%2Ftest-caching.heroku.com%2F
>
> Most HTTP caches support "heuristic expiration" (details here:
> http://tools.ietf.org/html/rfc2616#page-80). The basic idea is that,
> if no explicit expiration time/age is provided, the cache uses a
> heuristic to determine expiration, typically based on the
> Last-Modified header.
>
> You have a few options here. If you'd like to force the cache to
> always validate the response with the backend, you can set the
> "must-revalidate" cache-control directive. Somewhere before the call
> to stale?:
>
>    response.headers['Cache-Control'] = "public, must-revalidate"
>
> That tells the cache that it's not allowed to serve a stale response
> and that it must validate its version with the backend.
>
> Alternatively, you can set the max-age directive to zero. This has
> pretty much the same effect but looks a lot nicer because Rails has a
> controller method for it:
>
>    expires_in 0, :public => true
>
> Give those a shot and let me know what happens. I'm also not sure I
> like that Varnish does heuristic expiration by default, even though
> it's to spec.
>
> Thanks,
> Ryan
>
> >
>


-- 
Cheers

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Heroku" group.
To post to this group, send email to heroku@googlegroups.com
To unsubscribe from this group, send email to 
heroku+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/heroku?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to