wasm_postpone_rewrite
`wasm_postpone_rewrite` 指令允许将重写处理延迟到 WebAssembly 过滤器执行之后。
Proxy-Wasm support for Nginx powered by wasmtime
·
httpserverlocation
语法wasm_postpone_rewrite on | off;
默认值off
上下文http, server, location
参数1
说明
wasm_postpone_rewrite 指令是 NGINX 中用于与 Proxy-Wasm 模块配合时的一个功能。通过使用此指令,您可以指示 NGINX 将任何重写规则的应用延后到所有基于 WebAssembly 的过滤器执行之后。这在某些场景中特别有用,例如 WebAssembly 过滤器中的逻辑可能会根据运行时条件或过滤器处理的数据来决定最终的重写行为。
该指令接受一个参数,用于指定在何种条件下延迟重写。通常预期此条件与 WebAssembly 过滤器中的交互有关,这些交互可能会修改对准确 URL 重写至关重要的请求或响应属性。它有助于将请求处理流程与封装在 WebAssembly 中的复杂逻辑对齐,尤其适用于对重写时机要求严格的高级请求处理需求。
在 http、server 或 location 等上下文中使用时,它允许在服务器配置的不同层级上微调请求处理行为。这为管理员提供了强大的工具,以更动态地管理和塑造请求流,利用 WebAssembly 过滤器提供的灵活性。
配置示例
http {
server {
listen 80;
location / {
wasm_postpone_rewrite on;
proxy_wasm my_filter;
proxy_pass http://backend;
}
}
}⚠
请记得在允许发生重写之前,确保你的 WebAssembly 过滤器已正确处理所有必需的逻辑。
⚠
如果已设置 wasm_postpone_rewrite 但没有实际的 WASM 过滤器被执行,重写将被无限期推迟,可能导致意外行为。