$request_body
$request_body 变量包含客户端请求的原始主体。 — NGINX Core (HTTP)
$request_body
NGINX Core (HTTP)
说明
$request_body 变量在 NGINX 中捕获经过服务器处理后的客户端请求主体。它主要在请求方法通常包含主体(例如 POST 或 PUT)时被填充。只有在服务器配置中启用了 'set' 或 'get' 请求主体处理时该变量才可用,通常通过 proxy_pass 指令,或当客户端直接向服务器发送数据时可用。一旦设置,它就保存客户端发送的所有数据,因此在处理表单、文件上传或请求中发送的任何有效载荷时非常有用。 在使用 $request_body 变量时,必须注意请求主体是被缓冲的。默认情况下,其大小可能受 client_max_body_size 指令的限制,该指令限制了被处理并最终存储到此变量中的主体大小。如果主体超过该限制,请求可能会被拒绝,而该变量也不会包含任何数据。$request_body 的典型值可以包括 JSON 有效载荷、multipart form data 或简单文本,具体取决于内容类型和客户端意图。
配置示例
server {
listen 80;
server_name example.com;
location /submit {
# Capture the request body
proxy_pass http://backend;
proxy_set_header X-Request-Body $request_body;
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保 client_max_body_size 被适当设置,以避免较大的请求体被丢弃导致的问题。
⚠
请记住,$request_body 仅在支持请求体的方法中可用,例如 POST 和 PUT。
⚠
如果在后续的 location block 中进行后处理,并且你打算在之后访问请求体,请确保之前的 location block 不会消耗请求体。