openresty / srcache-nginx-module

Transparent subrequest-based caching layout for arbitrary nginx locations.
http://wiki.nginx.org/NginxHttpSRCacheModule
476 stars 105 forks source link

Ctrl + F5 in browser -> need request #6

Closed Perlover closed 13 years ago

Perlover commented 13 years ago

Good day!

Can i ask a new useful feature? Now if object in cache your module will always fetch this object from memcached even if i will press Ctrl + F5 in browser when i press Ctrl + F5 in Firefox for example the Firefox do a request with "Pragma: no-cache" in http request. A common proxies and caches should fetch a an object not from cache.

Can i ask to add TODO:

If in request there is "Pragma: no-cache" http header then an answer we should do as object is missed in memcached?

If this feature will be an owner will be able to remove any object by Ctrl + F5 if object was deleted at original location

Thanks! :)

agentzh commented 13 years ago

Yeah, this is a TODO item :) Do you have the tuits to provide a patch? ;)

Perlover commented 13 years ago

Sorry, i am glad to make changes in code but now for me very difficult programming for nginx

agentzh commented 13 years ago

BTW, a work-around atm is to set a custom nginx variable, say, $skip , in rewrite_by_lua or set_by_lua's Lua code depending on the "Pragma" or "Cache-Control" request header, and then use $skip in the srcache_fetch_skip directive, for example:

set_by_lua $skip '
    if ngx.var.http_pragma == "no-cache" then
        return 1
    end
    return 0
';

srcache_fetch ...;
srcache_fetch_skip $skip;
...
Perlover commented 13 years ago

Good day!

Thanks for example! :-) And thanks for nice modules (memc & srcache)!

agentzh commented 13 years ago

On Mon, Sep 26, 2011 at 7:35 AM, Perlover reply@reply.github.com wrote:

Good day!

Can i ask a new useful feature? Now if object in cache your module will always fetch this object from memcached even if i will press Ctrl + F5 in browser when i press Ctrl + F5 in Firefox for example the Firefox do a request with "Pragma: no-cache" in http request. A common proxies and caches should fetch a an object not from cache.

I've just implemented the srcache_request_cache_control directive in git devel branch of the ngx_srcache project. When turned this directive on, request headers "Cache-Control: no-cache" and "Pragma: no-cache" can both be used to force bypassing the cache. See the related tests for details:

https://github.com/agentzh/srcache-nginx-module/blob/devel/t/req-cache-control.t

Can i ask to add TODO:

If in request there is "Pragma: no-cache" http header then an answer we should do as object is missed in memcached?

If this feature will be an owner will be able to remove any object by Ctrl + F5 if object was deleted at original location

This is no longer a TODO ;)

After more testing, I'll merge this change to the "master" branch and add some documentation for this new feature :)

Thanks! -agentzh