wasm_call

`wasm_call` 指令在指定的 NGINX 请求阶段执行特定的 WebAssembly 函数。

语法wasm_call phase module function;
默认值none
上下文http, server, location
参数3

说明

wasm_call 指令在 NGINX 配置中使用,用于在请求的特定执行阶段调用 WebAssembly 函数。这样可以用 WebAssembly 编写服务器端逻辑,以提高灵活性和性能。语法需要三个参数:第一个是请求生命周期的阶段(例如 access、header 等),第二个是已经使用 wasm 指令预先加载的 WebAssembly 模块的名称,第三个是该模块中应被调用的具体函数。

配置后,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 有效并被识别,否则该指令可能无法按预期工作。

在尝试调用其函数之前,请确认已使用 wasm 指令预先定义了该 WebAssembly 模块。

核实所提供的函数名在 WebAssembly 模块中存在,否则执行将失败。

← 返回所有指令