nginx获取body参数_nginx处理requestbody参数配置
通常情况下,nginx与客户端是公⽹连接,nginx与上游服务是内⽹连接,内⽹带宽远远⾼于公⽹带宽。 nginx对request body的处理默认是先接受完所有的数据,再转发到上游服务。
client_body_buffer_size:
Syntax: client_body_buffer_size size;
Default: client_body_buffer_size 8k|16k;
Context: http, server, location
设置⽤于读取客户端请求正⽂的缓冲区⼤⼩。 如果请求主体⼤于缓冲区,则将整个主体或仅将其⼀部分写⼊临时⽂件。 默认情况下,缓冲区⼤⼩等于两个内存页。 在x86,其他32位平台和x86-64上为8K。 在其他64位平台上,通常为16K。
如果request body的⼤⼩⼩于此值,则只分配所需⼤⼩。如果⼤于此值,则会申请这⾥定义的内存⼤⼩,并且复⽤这块内存,直⾄接收body完毕。
Kong代理客户端请求使⽤nginx默认值,可通过环境变量修改KONG_CLIENT_BODY_BUFFER_SIZE=20m.Kong的admin api默认是10m。
需要注意的是,理论上此值较⼩,只是读写硬盘次数增加,影响上传速度,不会产⽣错误。但是⽇志出现nginx Connection reset by peer上传失败错误,原因可能是上游服务处理过程太慢,导致前端nginx超时断开连接。
client_body_timeout
Syntax: client_body_timeout time;
Default: client_body_timeout 60s;
Context: http, server, location
定义读取客户端请求正⽂的超时。 仅在两次连续读取操作之间的⼀段时间内设置超时,⽽不是为整个请求主体的传输设置超时。 如果客户端在此时间内未传输任何内容,则请求将终⽌并显⽰408(请求超时)错误。
client_max_body_size
Syntax: client_max_body_size size;
Default: client_max_body_size 1m;
nginx部署前端项目Context: http, server, location
设置客户端请求正⽂的最⼤允许⼤⼩,在“ Content-Length”请求标头字段中指定。 如果请求中的⼤⼩超过配置的值,则会向客户端返回413(请求实体太⼤)错误。 请注意,浏览器⽆法正确显⽰此错误。 将size设置为0将禁⽤对客户端请求主体⼤⼩的检查。
k8s ingress设置,增加注解:nginx.ingress.kubernetes.io/proxy-body-size: 100m。
Kong默认值是0,即⽆限制。
client_body_in_file_only
client_body_in_single_buffer
client_body_temp_path
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论