atom feed10 messages in ru.sysoev.nginxRe: proxy_cache
FromSent OnAttachments
Richard KearsleyApr 24, 2011 7:58 am 
Ryan MalayterApr 24, 2011 7:11 pm 
Richard KearsleyApr 24, 2011 7:21 pm 
Maxim DouninApr 25, 2011 11:55 am 
Ryan MalayterApr 25, 2011 11:58 am 
Richard KearsleyApr 25, 2011 1:12 pm 
Ryan MalayterApr 26, 2011 7:23 am 
Richard KearsleyApr 26, 2011 7:27 am 
António P. P. AlmeidaApr 26, 2011 8:19 am 
Richard KearsleyApr 29, 2011 6:02 am 
Subject:Re: proxy_cache
From:Ryan Malayter (mala@gmail.com)
Date:Apr 25, 2011 11:58:54 am
List:ru.sysoev.nginx

On Sun, Apr 24, 2011 at 9:22 PM, Richard Kearsley <Rich@m247.com> wrote:

Thanks, I already set "proxy_cache_use_stale updating" But what if the file is completely new..? there is no stale file to serve

Ah, I see... the first request for a new file would put it into the updating state, but there would be no stale version to serve.

I'm not sure what happens in that case, but I would suspect that all of those requests go to the back end. This should be a very short-lived condition though. In the majority of the cases we're talking milliseconds, unless the files are really large or the back-end is really slow.

Say you had a 50 MB video file and your back-end was something like Amazon S3... I could see many many requests for that file coming in at the same time the first was still processing. I'm not sure what the best thing to do in that case would be.

The options, I think, would be: 1) return a 404 (or some temporary error code) until the cache is primed (that doesn't seem like good default behavior) 2) block all other requests until the first is finished (also seems problematic, especially if the first request is taking forever) 3) pass all requests to the back-end until there is a valid cache entry

I suspect nginx chooses option #3. Are you saying that you want to do #2? Or something else entirely?

Varnish seems to do #2 by default: http://www.varnish-cache.org/docs/2.1/tutorial/handling_misbehaving_servers.html