Возможно ли остановить выполнение правил внутри location/выйти из location

Роман Буренков panzercheg на gmail.com
Вс Июл 26 09:11:20 UTC 2020


Я использую gitlab 12 СE ( 12.9.2 (ac5568eb5d8) ) и nginx из поставки
gitlab (nginx 1.16.1 sha256:f11c2a6d )

кусок моего location с правилами:

location /test/lfs_lock_test.git/info/lfs/locks{
 if ( $args ~ "lockservice=true" ) {
  return 404;
  }
 rewrite ^/test/lfs_lock_test.git/(.*) /$1 break;
 proxy_pass https://localhost:5002;
 access_log  /var/log/gitlab/nginx/lfs_lock_access.log gitlab_access;
 error_log   /var/log/gitlab/nginx/lfs_lock_error.log debug;
}

я хочу обрабатывать все запросы на  ^.*.git/info/lfs/locks внутри location,
только если там не содержится lockservice=true в URI, в это случае,
просто выйти из location ( без 404 ) ,т.к. в файле, который я правлю
( /var/opt/gitlab/nginx/conf/gitlab-http.conf ) есть в т.ч. и такое:

  location / {
    proxy_cache off;
    proxy_pass  http://gitlab-workhorse;
  }

т.е. если есть  lockservice=true в URI, то не делать proxy_pass и в
принципе не применять правила из моего location
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20200726/31064a9a/attachment.htm>


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