多个位置的 Nginx proxy_cache_lock

问题描述

http {
    ...
    server {
        ...

        location /good { 
            proxy_cache mycache;
            proxy_cache_key $arg_cachekey;
            proxy_cache_valid 200 1h;
            proxy_cache_lock on;
            proxy_cache_lock_timeout 20m;
            proxy_cache_lock_age 20m;
            ...
            (upstream returning 200 with the content)
        }

        location /bad { 
            proxy_cache mycache;
            proxy_cache_key $arg_cachekey;
            proxy_cache_lock on;
            proxy_cache_lock_timeout 20m;
            proxy_cache_lock_age 20m;
            ...
            (upstream returning 404)
        }
    }
}

缓存是空的。请求:

GET /good?cachekey=123

/good 上游响应内容的一小段时间后,请求:

GET /bad?cachekey=123

/bad 位置的请求是否应该等到 /good 检索缓存并且 /bad 以 200 响应?如果不是,如何实现?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)