uwsgi_pass_request_body
uwsgi_pass_request_body 指令控制是否将请求主体与请求头一起传递给 uWSGI 服务器。 — NGINX HTTP Core
uwsgi_pass_request_body
httpserverlocation
语法uwsgi_pass_request_body on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`uwsgi_pass_request_body` 指令是一个标志,用于决定在使用 `uwsgi_pass` 转发请求时是否应将请求主体发送到 uWSGI 服务器。 当设置为 `on` 时,请求主体会被传输到后端的 uWSGI 应用,使其能够处理诸如表单提交、文件上传或包含在 HTTP 请求主体中的其他负载等数据。 相反,当设置为 `off` 时,请求主体不会被发送,这在只需要头信息且可以忽略请求主体的场景中可能有用,从而通过减少传输的数据来提高性能。 该指令可以在 `http`、`server` 或 `location` 上下文中配置,因此适用性强、适用于各种配置。 它在处理通常包含主体的 HTTP 方法(如 POST 或 PUT)的应用中特别重要。 该指令的行为会直接影响 uWSGI 服务器如何与接收到的请求交互;例如,如果在 `uwsgi_pass_request_body` 为 `off` 时发送了需要主体的请求,uWSGI 应用将收到缺少主体数据的通知,如果未正确处理,可能导致错误。
配置示例
location /api {
uwsgi_pass unix:/tmp/myapp.sock;
uwsgi_pass_request_body off;
}⚠
确保后端应用在设置为 'off' 时能够处理没有请求体的请求。
⚠
使用 'off' 可能会导致对于通常需要请求体的 HTTP 方法(如 POST)出现问题。如果应用需要请求体,应避免使用 'off'。