uwsgi_pass_request_body
uwsgi_pass_request_body 指令控制是否将请求主体与请求头一起传递给 uWSGI 服务器。
NGINX HTTP Core
·
httpserverlocation
语法uwsgi_pass_request_body on | off;
默认值on
上下文http, server, location
参数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'。