Nginx an upstream response is buffered to a temporary file,nginx502错误
2024-09-24 14:29:59
1.错误日志:warn:an upstream response is buffered to a temporary file
解决办法:增加fastcgi_buffers 8 4K; fastcgi_buffer_size 4K;
2. a client request body is buffered to a temporary file
解决办法:增加client_max_body_size 2050m; client_body_buffer_size 1024k;
Nginx 的 buffer 机制:
对于来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端浏览器。缓冲区的大小由 fastcgi_buffers 和 fastcgi_buffer_size 两个值控制。
比如如下配置:
fastcgi_buffers 8 4K;
fastcgi_buffer_size 4K;
fastcgi_buffers 控制 nginx 最多创建 8 个大小为 4K 的缓冲区,而 fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。所以总计能创建的最大内存缓冲区大小是 8*4K+4K = 36k。而这些缓冲区是根据实际的 Response 大小动态生成的,并不是一次性创建的。比如一个 8K 的页面,Nginx 会创建 2*4K 共 2 个 buffers。
当 Response 小于等于 36k 时,所有数据当然全部在内存中处理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。同时你会在 error.log 中看到一条类似 warning:
2010/03/13 03:42:22 [warn] 3994#0: *1 an upstream response is buffered to a temporary file
/usr/local/nginx/fastcgi_temp/1/00/0000000001 while reading upstream,
client: 192.168.1.111,
server: www.xxx.cn,
request: "POST /test.php HTTP/1.1",
upstream: "fastcgi://127.0.0.1:9000",
host: "xxx.cn",
referrer: "http://xxx.cn/test.php"
显然,缓冲区设置的太小的话,Nginx 会频繁读写硬盘,对性能有很大的影响,但也不是越大越好,没意义.
转 :https://www.cnblogs.com/littlewrong/p/7076459.html
最新文章
- FP-growth高效频繁项集发现
- C# 方法返回值的个数
- Android ExpandableListView
- html中的 button,input-button, image, input-image的区别
- C#获得枚举类型的长度
- 搭建SpringMVC+MyBatis开发框架三
- careercup-C和C++ 13.6
- cocos2dx 初探 - VS2012 HELLOWORLD
- print,print_r,echo,var_dump,var_export比较
- java 属性
- [js高手之路] 我的开源javascript框架gdom - 选择器用法
- Select2控件不能自适应的解决办法
- 控件包含代码块(即 <;% ... %>;),因此无法修改控件集合。
- echarts中饼图显示百分比
- 【C/C++】C++11 Variadic Templates
- EJB3.0中的session bean以及MDB解析
- 学Hadoop还是Spark好?
- Oracle_高级功能(1) 数据库设计
- 一个UICollectionView自定义layout的实现
- A configuration error occurred during startup.Please verify the preference filed with the prompt:Connect to VM
热门文章
- Caliburn.Micro对目录结构的要求
- .jar包文件的生成与运行
- Linux操作系统的种种集成开发环境
- 夏书祥-苹果iPhone多开
- Element &#39;beans&#39; cannot have character [children]
- AndroidStudio用Cmake方式编译NDK代码(cmake配置.a库)
- JNI/NDK开发指南(十)——JNI局部引用、全局引用和弱全局引用
- 使用dulilib DirectUI库(一)
- FrameWork中SQLServer数据源使用宏函数出错解决办法
- Download Visual Studio