Рейтинг:0

после обновления до nginx 1.21.5 за \ в "\index.htm(l?)" следует нераспознанный символ

флаг vn

Мой образ докера внезапно вышел из строя после сборки с сообщением об ошибке:

30.12.2021, 16:02:26 [появление] 16#16: pcre2_compile() не удалось: нераспознанный символ следует за \ в "\index.htm(l?)" в "index.htm(l?)" в /etc/nginx/conf.d/default.conf:37

Мы собираем образ докера из nginx:latest, который на данный момент имеет версию 1.21.5.

Я перешел на nginx 1.21.4, и он запускается без проблем.

Моя проблемная конфигурация:

    расположение ~* \index.htm(l?) {
        add_header Cache-Control 'без кэша, без хранения, необходимо перепроверить';
    }

Были ли внесены какие-либо критические изменения между nginx 1.12.4 и 1.12.5, или я использовал устаревший синтаксис? Я никогда не получал никаких предупреждений об этом.

флаг jp
И иметь \i в начале регулярного выражения. Это неизвестная управляющая последовательность.
Рейтинг:1
флаг vn

Благодаря комментарию AlexD я обнаружил настоящую проблему:

Изменение в nginx 1.21.5 заключается в переходе с PCRE на PCRE2. PCRE2 совместим с предыдущей версией, за исключением того, что он не устойчив ко многим ошибкам, которые игнорировались предыдущей версией.

Проблема в моем случае заключалась в «экранировании» первой буквы, что было неправильным экранированием (копирование-вставка из другого случая, где точка была экранирована).

PCRE молча проигнорировал «экранирование» и обработал регулярное выражение, как если бы «отсутствовало».

PCRE2 выдает ошибку.

Рейтинг:1
флаг kz

В примечаниях к выпуску говорится, что теперь он «собран с библиотекой PCRE2 по умолчанию». Возможно, это более строго при разборе неизвестных escape-последовательностей, чем раньше.

https://nginx.org/en/ИЗМЕНЕНИЯ

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.