proxy_pass_request_body

`proxy_pass_request_body` 指令控制在 NGINX 中是否将请求体传递给被代理的服务器。 — NGINX HTTP Core

proxy_pass_request_body
httpserverlocation
语法proxy_pass_request_body on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

`proxy_pass_request_body` 指令是一个布尔标志,用于 NGINX 配置中的 http、server 和 location 块。当该指令设置为 "on" 时,NGINX 在转发请求时会将请求体发送到被代理服务器。对于处理 POST 请求或包含请求体的任何请求(例如数据上传)这尤其重要。如果指令设置为 "off",请求体将不会发送到上游服务器,这可能会在应用依赖接收请求体时导致意外行为。 该指令允许在代理场景中微调请求处理,为不同后端应用提供优化。若未配置此指令,默认值为 "on",也就是说默认会转发请求体,除非被显式配置为其他值。对于期望在代理环境中处理数据的应用,这一点可能至关重要。 配置该指令很简单,除了用于启用或禁用该行为的标志外不需要额外参数。总体而言,它有助于控制请求数据的流向,对于依赖 NGINX 作为反向代理的 Web 应用的正常运行非常重要。

配置示例

location /api {
    proxy_pass http://backend;
    proxy_pass_request_body off;
}

对于 POST 请求,如果后端需要请求体,请确保已将 `proxy_pass_request_body` 设置为 `on`。

将此指令设置为 `off` 可能导致被代理的服务器上的数据处理不完整。

在错误的上下文中使用(例如在 server block 内)会导致配置错误。