wasm_call

Директива `wasm_call` выполняет указанную функцию WebAssembly на заданной фазе обработки запроса NGINX.

Синтаксисwasm_call phase module function;
По умолчаниюnone
Контекстhttp, server, location
Аргументы3

Описание

Директива wasm_call используется в конфигурации NGINX для вызова функций WebAssembly во время определённых фаз выполнения запроса. Это позволяет писать серверную логику на WebAssembly ради гибкости и производительности. Синтаксис требует три параметра: первый — фаза жизненного цикла запроса (например, access, header и т.д.), второй — имя модуля WebAssembly, который был предварительно загружен с помощью директивы wasm, и третий — конкретная функция внутри этого модуля, которую следует вызвать.

При настройке NGINX при указанной фазе выполнение будет приостановлено для запуска функции в заданном модуле WebAssembly. Это выполнение может изменить запрос, ответ или даже выполнять задачи логирования или аналитики, в зависимости от реализации функции. Директива wasm_call помогает создавать динамическое поведение в NGINX, позволяя разработчикам расширять функциональность сервера без прямого изменения исходного кода и используя возможности WebAssembly.

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

http {
    server {
        listen 9000;

        location / {
            # Calls the 'check_something' function of 'my_module' during the access phase
            wasm_call access my_module check_something;
            proxy_pass http://backend;
        }
    }
}

Убедитесь, что указанная фаза действительна и распознается NGINX, иначе директива может не работать как ожидается.

Убедитесь, что модуль WebAssembly был предварительно определён с помощью директивы wasm перед попыткой вызвать его функции.

Проверьте, что указанное имя функции присутствует в модуле WebAssembly; в противном случае выполнение завершится с ошибкой.

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