wasm_call
`wasm_call` 指令在指定的 NGINX 请求阶段执行特定的 WebAssembly 函数。
Proxy-Wasm support for Nginx powered by wasmtime
·
httpserverlocation
语法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 模块中存在,否则执行将失败。