wasmtime
'wasmtime' 指令用于在 NGINX 配置中定义和管理 WebAssembly 模块,以扩展其功能。
Proxy-Wasm support for Nginx powered by wasmtime
语法wasm { module name path.to.wasm; }
默认值none
上下文
参数none
说明
'wasmtime' 指令使 NGINX 能够与 WebAssembly (Wasm) 模块交互,允许开发者通过使用可编译为 Wasm 的编程语言(例如 Rust 或 Go)编写的自定义实现来扩展 NGINX 的功能。 这种交互通过 Proxy-Wasm ABI 实现,NGINX 利用该 ABI 在运行时加载并执行 Wasm 模块。该指令本身不接受任何参数,但通常与其他指令结合使用,以为 NGINX 实例配置 WebAssembly 环境。
在使用 'wasmtime' 指令时,它会启动一个用于 Wasm 模块的新的顶级配置块。在该块内,开发者定义可在请求处理的各个阶段用作过滤器或辅助功能的各个模块。该模块化机制允许在服务器的数据路径中直接动态应用复杂逻辑,从而增强其功能,超越传统配置。例如,开发者可以指定实现专用认证、速率限制,甚至数据转换功能的 Wasm 模块。此外,NGINX 工作进程可以各自实例化指定的 Wasm 模块,从而实现并发处理和高吞吐量。
配置示例
wasm {
module my_filter /path/to/my_filter.wasm;
}⚠
确保 Wasm 二进制已正确编译,并与 Proxy-Wasm ABI 兼容。
⚠
Wasm 模块的路径必须对 NGINX 可访问,并设置适当的权限。
⚠
注意资源限制,因为 Wasm 的执行如果未得到妥善管理,可能会影响 NGINX 的性能。