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? Если нет, то как этого добиться?

0 ответов

Другие вопросы по тегам