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
через короткое время, пока восходящий поток отвечает контентом, запрашивая:
GET /bad?cachekey=123
Если запрос на месте, подождите, пока
/good
извлекает кеш и
/bad
ответить 200? Если нет, то как этого добиться?