wasm
wasm 指令在 NGINX 中配置 WebAssembly 支持,使得可以使用 WebAssembly 模块来扩展功能。
Proxy-Wasm support for Nginx powered by wasmtime
·
main
语法wasm { module name path.{wasm,wat}; }
默认值none
上下文main
参数none
说明
The wasm 指令用于在 NGINX 中启用并配置 WebAssembly (Wasm) 支持,允许用户在 NGINX 服务器内嵌入 WebAssembly 运行时。该指令建立了一个用于加载和管理 Wasm 模块的上下文,这些模块可以在响应请求在服务器中遍历的各种 HTTP 事件和阶段时被执行。通过使用 wasm,开发者可以定义封装自定义逻辑的模块,并使用 proxy-wasm 动态地操控请求和响应,从而增强 Web 服务器的功能。
具体来说,用户可以将实现过滤器或其他处理逻辑的 Wasm 模块加载到 NGINX 中,使用诸如 Rust 或 Go 等语言编写。配置允许通过指定模块名称和到已编译 .wasm 文件的路径来声明多个 Wasm 模块。然后,可在 NGINX 的各种上下文中调用相应功能,例如在请求处理或访问阶段,从而通过自定义 WebAssembly 逻辑实现强大的可扩展性。
配置示例
wasm {
module my_filter /path/to/filter.wasm;
module my_module /path/to/module.wasm;
}⚠
确保 Wasm 模块路径正确并且可被 NGINX 访问。
⚠
模块必须为预期的目标和 NGINX 版本正确编译。
⚠
调试 Wasm 模块可能需要在 NGINX 中启用调试日志。