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