Не работает proxy cache lock

ZZZ nginx-forum на forum.nginx.org
Чт Июн 21 14:43:00 UTC 2018


Доброго утра!

Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, на
который я шлю порядка 150 простых запросов в секунду. Каждые пять секунд,
когда инвализируется кеш, на апстрим уходит от пяти до двадцати запросов, в
зависимости от времени ответа апстрима, тогда как я жду, что уйдёт только
один запрос, а остальные будут ждать его обработки. Отключени
proxy_cache_lock не влияет на проблему никак.


user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid  /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include  /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  escape=json
        '$time_iso8601 $request_id '
        '$remote_addr $request_length $host "$request" "$http_referer"
"$http_user_agent" '
        '$request_time $status $body_bytes_sent';

    access_log  /var/log/nginx/access.log  main;

    proxy_cache_path  /var/cache/nginx/CACHE levels=1:2
keys_zone=CACHE:16m;

    server {
        listen  80 default_server;
        listen  [::]:80 default_server;

        proxy_cache  CACHE;

        proxy_cache_lock  on;
        proxy_cache_lock_age 10s;
        proxy_cache_lock_timeout 20s;

        proxy_cache_valid  200 5s;
        proxy_ignore_headers X-Accel-Expires Expires Cache-Control
Set-Cookie Vary;

        proxy_set_header  Host HOST;

        location / {
            proxy_pass  https://HOST;
        }

    }
}


Запускаю вот таким образом:
  $ docker run --rm -it -v (pwd)/nginx.conf:/etc/nginx/nginx.conf:ro -p
80:80 nginx:alpine
Пробовал версии, от 1.10 до 1.15.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280226,280226#msg-280226



Подробная информация о списке рассылки nginx-ru