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

Роман Буренков panzercheg на gmail.com
Пн Июл 27 10:45:03 UTC 2020


Максим, спасибо огромное! В итоге это именно то, что я и хотел получить.

>
>
> ---------- Forwarded message ----------
> From: Maksim Kulik <kulmaks на gmail.com>
> To: nginx-ru на nginx.org
> Cc:
> Bcc:
> Date: Mon, 27 Jul 2020 09:54:02 +0300
> Subject: Re: Возможно ли остановить выполнение правил внутри
> location/выйти из location
> Можно после if делать внутренний редирект на другой локейшен (если,
> конечно, в вашем случае нет какой-то сложной дальнейшей обработки и вас
> интересует только то, что записано в location / ) при помощи error_page. То
> есть:
>
> error_page 420 = @special_location;
>
> location /test/lfs_lock_test.git/info/lfs/locks{
>  if ( $args ~ "lockservice=true" ) {
>   return 420;
>   }
>  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;
> }
>
> location @special_location {
>     proxy_cache off;
>     proxy_pass  http://gitlab-workhorse;
> }
>
> пн, 27 июл. 2020 г. в 09:16, Роман Буренков <panzercheg на gmail.com>:
>
>>
>> А какая была бы более правильная логика? Я изначально хотел сделать 2
>> правила с (?)(?!) но почему в таком regex`е у меня всё равно не тот url,
>> что я хотел просачивался в location (  location ~
>> (?^/.*.git/info/lfs/locks$)(?!^.*&lockservice=true$))
>>
>>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20200727/8c1e8557/attachment.htm>


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