echo_before_body

`echo_before_body` 指令在 HTTP 响应的主主体发送之前发送响应体。

语法echo_before_body string;
默认值none
上下文location, if in location
参数any

说明

echo_before_body 指令是 NGINX Echo 模块的一部分,允许用户在传输主响应体之前将任意内容作为响应的一部分发送。这对某些场景特别有用,例如在主内容处理并发送给客户端之前,根据特定条件或计算注入头部或修改输出流。该指令可在 location block 或位于 location context 中的 if block 中使用,从而根据特定请求生成定制的响应输出。

该指令在使用时不指定固定值,而是接受任意参数。该参数可以是简单字符串,也可以是生成动态内容的更复杂表达式。一旦触发 echo_before_body 指令,它会写入响应输出流,NGINX 将相应地处理该响应流,同时准备向客户端发送完整响应。因此,用户必须了解其配置中的执行顺序和规则,因为按错误顺序发送数据(特别是在主主体之前)可能会影响 HTTP 响应的预期行为。

需要注意的是,该指令不会终止请求。相反,它会准备输出流以包含指定内容以及之后可能发生的任何处理。用户应注意在主体之前通过该指令输出的数据量,过度使用可能导致响应大小超出预期,从而可能影响带宽和性能。

配置示例

location /example {
    echo_before_body "Initial Content";
    echo "Main Response Body";
}

错误使用 echo_before_body 可能导致响应格式异常。

定义过大的内容可能影响性能和带宽。

指令的顺序至关重要;请确保 echo_before_body 相对于其他指令以正确的顺序使用。

← 返回所有指令