js_body_filter
`js_body_filter` 指令允许您在 NGINX 中使用 JavaScript 代码对 HTTP 请求的响应主体进行过滤和修改。
NGINX njs dynamic modules
·
locationif in locationlimit_except
语法js_body_filter handler [options];
默认值none
上下文location, if in location, limit_except
参数1-2
说明
js_body_filter 指令是 NGINX JavaScript 模块的一项功能,允许开发者使用 JavaScript 动态操作 HTTP 响应主体。该指令可以放置在特定上下文中,例如 location、if in location 和 limit_except。它接受一个或两个参数:第一个参数指定要调用的 JavaScript 函数,可选的第二个参数允许提供额外的选项或设置。
当配置了 js_body_filter 时,NGINX 会在响应处理阶段调用指定的 JavaScript 函数。该函数会接收关于请求的输入数据,并允许在将响应体数据片段发送给客户端之前对其进行操作。这为基于 JavaScript 编写的复杂逻辑提供了在输出中添加、修改或转换内容的灵活性。
要使用 js_body_filter,必须确保你的 NGINX 配置启用了 NGINX JavaScript 模块。典型用例包括动态格式化 JSON 响应、过滤敏感信息或向响应主体追加元数据,为自定义响应处理提供强大的工具。
配置示例
location /api {
js_body_filter my_js_function;
}⚠
确保 JavaScript 代码不会阻塞 event loop;否则可能会降低 NGINX 的性能。
⚠
注意缓冲区大小,因为过大的响应体可能导致内存问题。
⚠
确保 JavaScript 函数处理所有可能的输入变体,以避免运行时错误。