nginx/1.17.10 При использовании регулярных выражений в map обнуляются выделения уровня location, даже в случае, если в выражениях map не используются выделения.
https://nginx.org/ru/docs/http/ngx_http_map_module.html > Регулярное выражение может содержать именованные и позиционные выделения, которые могут затем использоваться в других директивах совместно с результирующей переменной. ------------------------------------------------- map $uri $suffix { '~*.' ''; } … server { … location ~* /test/(.+) { # try_files $uri @blank; # non empty try_files $uri$suffix $uri @blank; # empty } location @blank { default_type 'text/plain'; return 200 '$1'; } } ------------------------------------------------- Обращаемся к /test/123 — получаем пустой ответ. Стоит убрать $uri$suffix из try_files — получаем «123». Обойти можно, используя именованные выделения в location. Из формулировки в документации складывается ощущение, что значения позиционных выделений location'а будут переопределены если они используются в map. Но если их в map нет, странно получать пустые значения. Я неправильно понимаю документацию или это ошибка? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,288093,288093#msg-288093 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru