js_set
Директива `js_set` позволяет присваивать значения JavaScript переменным NGINX в контексте stream.
Описание
Директива js_set является частью модуля NGINX JavaScript и предназначена для привязки выражений JavaScript к переменным NGINX. Она особенно полезна в контекстах stream, где требуется динамическое поведение в зависимости от условий трафика или запросов клиента.
Директива принимает от двух до трёх аргументов: имя переменной, которой будет присвоено выражение JavaScript, сам JavaScript-код для выполнения, и необязательный третий аргумент, указывающий, следует ли трактовать переменную как строку или число. Такая гибкость позволяет выполнять сложные манипуляции с переменными прямо в файле конфигурации, давая разработчикам возможность использовать возможности JavaScript для сложных конфигураций без обращения к внешним скриптам или дополнительным уровням обработки.
На практике js_set можно использовать для вычисления значений на основе данных клиента, выполнения условной логики по параметрам запроса или генерации динамических ответов, создавая более интерактивное и отзывчивое поведение сервера, адаптированное к потребностям отдельных пользовательских запросов.
Пример конфига
js_set $custom_var 'function() { return "Hello, World!"; }();';Убедитесь, что синтаксис JavaScript корректен, так как ошибки в выражениях приведут к сбоям конфигурации.
При использовании необязательного третьего аргумента не забудьте указать правильный тип (string или number), чтобы избежать непредвиденного поведения.
Код JavaScript выполняется в контексте запроса; избегайте использования блокирующих или ресурсоёмких операций.