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 [warn] 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: httpserverlocation

Sets buffer size for reading client request body. In case the request body is larger than the buffer, the whole body or only its part is written to a temporary file. By default, buffer size is equal to two memory pages. This is 8K on x86, other 32-bit platforms, and x86-64. It is usually 16K on other 64-bit platforms.

官方文档:

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

可以研读下,弄清楚该配置参数及解决方法。

时间: 2024-10-10 17:54:37

nginx   client_body_buffer_size的相关文章

nginx 关于client_max_body_size client_body_buffer_size配置

最近生产环境在这两个参数之间遇到过几次坑.这里记录下.client_max_body_sizeclient_max_body_size 默认 1M,表示 客户端请求服务器最大允许大小,在"Content-Length"请求头中指定.如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Entity Too Large.就是说如果请求的正文大于client_max_body_size,一定是失败的.如果需要上传大文件,一定要修改该值.

nginx三 之缓存模块

友情提示: 缓存模块是在动静分离的环境基础上搭建,动静分离可以参考http://www.cnblogs.com/dahuandan/p/6759212.html 介绍 提高网站响应速度是web应用不容忽视的目标,在之前动静分离的基础上,我们已经降低了后端服务器压力,提高了处理请求的性能,但是用户请求的静态资源是从硬盘读取,相比内存的性能还有很大的提高: Nginx自带的缓存模块可以把静态资源缓存到内存中,提高了用户请求静态资源的速度,并且nginx自带缓存模块配置简单,使用灵活,搭配第三方插件可

centos6 LNMP的搭建(linux+nginx+mysql+php)

LNMP的搭建(linux+nginx+mysql+php) 简介 LNMP代表的就是:Linux系统下Nginx+MySQL+PHP网站服务器架构. Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:debian.centos.ubuntu.fedora.gentoo等. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器. Mysql是一个小型关系型数据库管理系统. PHP是一种在服务器端执行的嵌入HTML文档

nginx基础到进阶(二)

Nginx相关配置 =============================================================================== 概述: 本篇我们将继续上一篇的话题,来介绍Nginx的相关配置 回顾: Nginx安装之rpm包 过程如下:   1.在Nginx官方网点下载适合的nginx rpm包到本地,这里是我下载的rpm包: nginx-1.10.0-1.el7.ngx.x86_64.rpm 2.在当前nginx包的所在目录中执行yum in

nginx + tomcat配置https的两种方法

# The frist method: - Nginx and Tomcat using HTTPS: 1. nginx configuration: upstream test { server 172.16.7.30:8443 weight=1; } upstream master { server 172.16.7.31:8443 weight=1; } server { listen 80; server_name test.hbc315.com master.hbc315.com; r

Nginx做为CDN缓存负载均衡代理的配置实现

系统架构: nginx+tomcat+mysql 本文只做Nginx做为CDN缓存负载均衡代理的配置实现的介绍 相关软件: nginx-1.8.1.tar.gz ngx_cache_purge-2.3.tar.gz (用于手动清理缓存) 一.nginx安装 [[email protected] ~]tar -xf nginx-1.8.1.tar.gz [[email protected] ~]tar -xf ngx_cache_purge-2.3.tar.gz -C /usr/local/ngx

初试Nginx(2)---配置文件

Nginx默认配置文件名为nginx.conf. Nginx配置文件主要由3大部分构成,即main,events,http.其中main配置段为全局通用配置,events段为网络I/O模型及连接上限,http为HTTP服务设定. - main worker_processes 2:在配置文件main段的起始位置,worker为工作的进程个数,master进程是接收并分配请求给worker处理.配置参数一般为CPU的核心数,如果要开始SSL和GZIP则需要设置为CPU核心数的2倍.(建议最多开8个

nginx中级应用

1.安装监控模块 Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定: . /configure –with-http_stub_status_module 配置文件中启动监控 server下: location /nginx-status { allow -------- allow --------//允许的ip deny all;// stub_status on; acce

Nginx配置文件nginx.conf中文详解

#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /var/log/nginx/error.log info; #进程文件 pid /var/run/nginx.pid; #一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值