pcre_jit

Директива `pcre_jit` включает или отключает JIT-компиляцию (Just-In-Time) для регулярных выражений PCRE в NGINX. — NGINX Core

pcre_jit
main
Синтаксисpcre_jit on | off;
По умолчаниюoff
Контекстmain
МодульNGINX Core
Аргументыflag

Описание

Директива `pcre_jit` управляет использованием JIT-компиляции (Just-In-Time) для регулярных выражений, обрабатываемых с помощью библиотеки PCRE (Perl Compatible Regular Expressions). Когда JIT включена, регулярные выражения преобразуются в нативный машинный код для повышения производительности при сопоставлении шаблонов, что может существенно ускорить обработку запросов, зависящих от регулярных выражений при сопоставлении location или в директивах сервера. Эта директива доступна в контексте `main` и может быть установлена в значение `on` или `off`. По умолчанию JIT-компиляция отключена (off). Однако при включении она может повысить эффективность операций NGINX, использующих регулярные выражения, особенно при высокой нагрузке. Важно убедиться, что установленная в системе библиотека PCRE поддерживает JIT-компиляцию, так как не все сборки PCRE включают эту возможность. При использовании директивы `pcre_jit` администраторам следует учитывать, что хотя она может улучшить производительность, она также может привести к увеличению потребления памяти из-за хранения скомпилированных шаблонов регулярных выражений. Кроме того, в отдельных случаях сложные регулярные выражения могут вызывать проблемы совместимости; поэтому рекомендуется тщательно протестировать конфигурации после включения этой директивы.

Пример конфига

pcre_jit on;

JIT-компиляция может увеличить потребление памяти из-за хранения скомпилированных шаблонов.

Убедитесь, что установленная библиотека PCRE поддерживает JIT; в противном случае JIT не будет включён, несмотря на то, что директива установлена в 'on'.

Проверяйте конфигурацию после изменения этой директивы, чтобы избежать неожиданного поведения при работе со сложными regex-выражениями.