А какая была бы более правильная логика? Я изначально хотел сделать 2 правила с (?)(?!) но почему в таком regex`е у меня всё равно не тот url, что я хотел просачивался в location ( location ~ (?^/.*.git/info/lfs/locks$)(?!^.*&lockservice=true$))
вс, 26 июл. 2020 г. в 15:00, <nginx-ru-requ...@nginx.org>: > Сообщения, предназначенные для списка > рассылки nginx-ru, отправляйте по адресу > nginx-ru@nginx.org > > Для изменения параметров подписки или > отписки используйте веб-страницу > http://mailman.nginx.org/mailman/listinfo/nginx-ru > или отправьте письмо, в теле или теме > которого будет слово 'help', по адресу > nginx-ru-requ...@nginx.org > > Адрес администратора этого списка > рассылки: > nginx-ru-ow...@nginx.org > > При ответе, пожалуйста, измените тему > письма на более содержательную чем "Re: > Содержание дайджеста списка рассылки > nginx-ru..." > В этом номере: > > 1. Возможно ли остановить > выполнение правил внутри > location/выйти из location (Роман Буренков) > 2. Re: Возможно ли остановить > выполнение правил внутри > location/выйти из location (Сергей Олегович) > > > > ---------- Forwarded message ---------- > From: "Роман Буренков" <panzerc...@gmail.com> > To: nginx-ru@nginx.org > Cc: > Bcc: > Date: Sun, 26 Jul 2020 12:11:20 +0300 > Subject: Возможно ли остановить выполнение правил внутри location/выйти из > location > Я использую 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 > > > > > > > > > > ---------- Forwarded message ---------- > From: "Сергей Олегович" <shadow.t...@gmail.com> > To: <nginx-ru@nginx.org> > Cc: > Bcc: > Date: Sun, 26 Jul 2020 12:28:43 +0300 > Subject: Re: Возможно ли остановить выполнение правил внутри > location/выйти из location > Можно в if засунуть rewrite ... last; Тогда после выполнения условия будет > совершён выход из этого location и поиск нового в соответствии с > изменениями. Но мне сходу видятся проблемы, т.к. изначально логика > построена неверно. > > Роман Буренков <panzerc...@gmail.com> 26 июля 2020 г. 12:11:41 написал: > >> Я использую 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 >> >> >> >> >> >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru