Почему не работают два limit_req в разных location?

Проблема следующая. Есть конфинг nginx

http {

  limit_req_zone $binary_remote_addr zone=api_limit1:5m rate=1r/m;
  limit_req_zone $binary_remote_addr zone=api_limit2:5m rate=1r/m;

  server {

    location = /api/user/ {
        limit_req zone=api_limit2 nodelay;
        # break;

        add_header Set-Cookie "user=$user;Path=/;Max-Age=11111";

        return 200;
    }

    location ~ ^/api/ {
      limit_req zone=api_limit1 nodelay;
      proxy_pass http://api_server;
    }

На location ~ ^/api/ лимиты отрабатываются правильно: на автором запросе ошибка лимита.

А вот на location = /api/user/ - не работает вообще: выдает 200 с установкой куки всегда. Если разкомментить # break;, то на первом запросе выдает 404, а на втором - как надо, ошибку лимита.

Что я делаю не так?


Ответы (0 шт):