(安西) 发表于 2018-11-9 12:00:59

nginx client_body_buffer_size

  这里分享一个关于 nginx   client_body_buffer_size参数的解决案例。
  描述:前端同事反馈,在发POST 请求带参数的时候,过Nginx 会报错;但是单台测试tomcat,POST 很正常;看了下请求参数,好大一堆,的确比较多,问题应该在nginx上,于是查看nginx 报错日志,进行分析
  现象:用Postman 测试发送请求,POST报错不成功,参数好大一堆。


  查看nginx error 日志分析:
  2016/09/13 12:40:59 15598#0: *35462539 an upstream response is buffered to a temporary file /usr/local/nginx/proxy_temp/9/66/0001124669 while reading upstream, client: 116.226.84.138, server:*****.juxinli.com, request: "POST /devPlatformApi/rest/fengkong/variate_dir HTTP/1.1", upstream: "http://******/devPlatformApi/rest/fengkong/variate_dir", host: "***.***.com"
  分析解决:从官方给出的定义,是client_body_buffer_size 参数定义过小而发送请求超过默认参数16K大小了。
Syntax:client_body_buffer_size size;Default:client_body_buffer_size 8k|16k;Context:http, server, location
  Sets buffer>  官方文档:
  http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size
  解决办法:client_body_buffer_size 1024k; 加大到1024K,因为默认16K 太小,请求参数过多时,会出现此类报错。
  问题解除,恢复正常:

  官方文档:
  http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size
  其他帖子:
  https://my.oschina.net/linland/blog/373315?p=1
  可以研读下,弄清楚该配置参数及解决方法。


页: [1]
查看完整版本: nginx client_body_buffer_size