Как определить proxy_read_timeout для списка URI, определенных в карте на nginx? - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь настроить процесс для команды разработчиков, чтобы установить стандарты для API в тестовой среде, используя nginx (который используется в качестве обратного прокси-сервера), чтобы проверить производительность API и убедиться, что какой-либо плохой код подталкивает к серверу, API возвращает 504, устанавливая соответствующее значение proxy_read_timeout

Итак, я думаю иметь 3 категоризованных списка API, определенных на другой карте следующим образом:

map $uri $timeout_within_200ms {
   ~^api/v0/a2/ 2;
}

map $uri $timeout_within_300ms {
   ~^api/v0/a3/ 3;
}

map $uri $timeout_within_400ms {
   ~^api/v0/a4/ 4;
}

Сейчас в в директиве location я хочу установить для proxy_read_timeout соответствующее время в мс.

Согласно документации nginx, переменная из map не может использоваться для установки значения для proxy_read_timeout.

Я читал о «ЕСЛИ», и в этом случае его нельзя использовать. Таким образом, единственный вариант - создать три разных блока местоположения.

Как я могу создать три блока директивы местоположения, чтобы извлечь URI из соответствующих карт и установить соответствующий proxy_read_timeout? Regex будет сложно реализовать. Есть ли лучший способ для достижения цели?

...