proxy_set_body
将请求体设置为用于代理的指定值。 — NGINX HTTP Core
proxy_set_body
httpserverlocation
语法proxy_set_body value;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
指令 `proxy_set_body` 用于更改传递给上游服务器的请求体。通常,当 NGINX 代理请求时,它会原样转发客户端的请求体。但是,在某些情况下你可能需要更改该请求体,例如在实现反向代理时,需要在将数据发送到下游之前转换请求数据。 你可以将要作为请求体内容的文本作为该指令的参数指定,该内容可以包含任意文本或数据并替换原始请求体。该指令可以放在多个上下文中,包括 `http`、`server` 和 `location`,从而允许在不同层级灵活地修改请求。当使用该指令设置了新的请求体时,它会覆盖原始请求体,并作为请求负载发送到上游服务器。 请记住,应确保新请求体内容与请求类型兼容。例如,如果上游服务器期望接收 JSON 负载,那么通过 `proxy_set_body` 设置的请求体应为有效的 JSON 字符串,以避免错误或意外行为。
配置示例
location /api {
proxy_pass http://backend;
proxy_set_body '{"key":"value"}';
}⚠
将请求体设为空可能导致被代理的服务器收到空的请求体。
⚠
确保请求体格式与上游服务器期望的一致,否则它可能会拒绝该请求。