выражении применяемом к контексту location?
Пример на скриншоте. Соответственно без экранирования nginx воспринимает фигурную скобку как описание контекста, а если экранировать всю регулярку кавычками, то он ее не мэтчит
Любыми кавычками, одинарными или двойными Не мэтчит не из-за кавычек Ищи ошибку у себя Или показывай запрос
Спасибо Запрос показал на скриншоте. Подскажи, пожалуйста, почему если я убираю кавычки, то запрос из первого скриншота мэтчится до фигурной скобки. При этом, если кавычки поставить, то вообще не воспринимает регулярку?
Можешь текстом дать, чтобы не перенабирать это со скриншота?
server { listen 192.158.0.1:80; server_name example.com; location / { proxy_pass http://www.example.com; } location ~ "\/v\d+\/request\/C2C(Push|INT)\/\d+\/[0-9A-Za-z]\{32\}\/(LIF3|CI39|CI42|CI6[23])" { proxy_pass http://www.other.com; } }
Я отредактировал конфиг. Тот что скинул в первый раз был с кучей лишних обратных слешей, ради эксперимента)
Такой попробуй: "/v\d+/request/C2C(Push|INT)/\d+/[0-9A-Za-z]{32}/(LIF3|CI39|CI42|CI6[23])" У меня работает
А где ты проверяешь? В веб-тестере конфигов или прям в nginx на сервере?
На сервере, в песочнице
Значит веб-тестер меня запутал, спасибо! К песочнице nginx нет доступа сейчас, к сожалению
Если блок server { ... } выбирается тот, что нужно - должно работать. У меня на твоём примере запроса работает правильно.
Обсуждают сегодня