js_access

Директива js_access позволяет использовать пользовательский JavaScript для управления контролем доступа в stream-контекстах NGINX.

Синтаксисjs_access function_name;
По умолчаниюnone
Контекстstream, stream server
Аргументы1

Описание

Директива js_access является частью модуля NGINX JavaScript, который позволяет использовать JavaScript для различных операций в конфигурациях NGINX. В частности, в контексте модуля stream эта директива позволяет указать JavaScript-функцию, которая будет вызываться для определения правил доступа к сетевым соединениям. Это облегчает реализацию сложных правил доступа, выходящих за рамки стандартных параметров конфигурации, используя гибкость и выразительность JavaScript.

Эта директива принимает один аргумент: имя JavaScript-функции, которая будет обрабатывать логику доступа. Когда устанавливается клиентское соединение, NGINX вызовет указанную JavaScript-функцию, передав детали соединения, которые можно использовать для принятия решений во время выполнения о разрешении или отказе в доступе. Гибкость JavaScript позволяет работать с различными параметрами и реализовывать сложную логику, например проверку IP-адресов по динамическому списку, интеграцию с внешними сервисами или применение ограничения скорости.

Эффективное использование js_access требует хорошего понимания как модели событий NGINX, так и среды выполнения JavaScript, предоставляемой модулем NJS. Важно, чтобы JavaScript-код был неблокирующим для поддержания высокой производительности и масштабируемости при обработке входящих соединений.

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

stream {
    js_access my_access_function;
    
    server {
        listen 12345;
        proxy_pass backend_servers;
    }
}

Убедитесь, что JavaScript-функция определена и правильно загружена до того, как на неё ссылаются в конфигурации.

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

Отладка ошибок JavaScript может потребовать дополнительной настройки логирования, чтобы захватывать ошибки, возвращаемые функцией.

← Ко всем директивам