Welcome! Log In Create A New Profile

Advanced

Re: Не работают регулярные выражения в location

Maxim Dounin
September 04, 2017 08:54AM
Hello!

On Sun, Sep 03, 2017 at 09:37:24AM -0400, Seriyyy95 wrote:

> Недавно обновил версию Nginx и столкнулся с проблемой, что перестали
> работать регулярные выражения в location вида:
>
> location ~ строка {}
>
> Хотя если просто написать location = /строка {} то это срабатывает, но нужно
> именно регулярное выражение, чтобы искалась не именно эта строка, любая URL,
> которая содержит нужную подстроку. Например, хочу заблокировать доступ к
> всем файлам AI-BOLIT на сервере, для этого делаю:
>
> location ~ ^/(AI-BOLIT|AIBOLIT|ai-bolit) {
> deny all;
> }
>
> Но эффекта 0, url без проблем открываются, хотя на
> http://nginx.viraptor.info/ показано что этот запрос должен работать.
> Дистрибутив CentOS 7, программу брал из Brouken repo. Вот вывод nginx -v:

[...]

> В чем может быть причина и что делать?

Наиболее частая причина подобных проблем с регулярными выражениями -
в том, что они выполняются последовательно, и используется
первое совпадение. Так, если у вас в начале конфига виртуального
сервера есть запись вида "location ~ / { ... }", то никакие другие
регулярные выражения работать не будут, ибо первое совпадение
случится именно у этого location'а, и именно он будет использован
для обработки запроса.

Чтобы такого не было - нужно чётко следить за тем, какие
location'ы, заданные регулярными выражениями, используются в блоке
server{}. А лучше - по возможности не использовать их, а
использовать обычные префиксные location'ы, где поведение гораздо
более интуитивно и легче поддаётся контролю администратором.

Подробнее об этой и других проблемах поддержки больших
конфигураций можно узнать из доклада Игоря
"Масштабируемая конфигурация nginx". Видео доклада и его
расшифровка есть тут:

https://habrahabr.ru/company/oleg-bunin/blog/313666/

--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Не работают регулярные выражения в location

Seriyyy95 September 03, 2017 09:37AM

Re: Не работают регулярные выражения в location

Maxim Dounin September 04, 2017 08:54AM

Re: Не работают регулярные выражения в location

Seriyyy95 September 09, 2017 11:37AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 311
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready