首页 > 系统相关 >nginx fastcgi_buffers 缓存

nginx fastcgi_buffers 缓存

时间:2024-05-30 16:58:22浏览次数:15  
标签:Nginx nginx buffers 缓冲区 fastcgi 4K

nginx fastcgi_buffers设置

打开nginx的warn级别error_log,看到如下信息:

2011/04/23 17:24:08 [warn] 9639#0: *44 an upstream response is buffered to a temporary file /tmp/fastcgi_temp/8/0/0000000008 while reading upstream, client: 118.118.118.118, server: sealinger.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.sealinger.com"

参考《分析 fastcgi_temp 错误以及 Nginx 的 Buffer 机制》一文:

先简单的说一下 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。

显然,缓冲区设置的太小的话,Nginx 会频繁读写硬盘,对性能有很大的影响,但也不是越大越好,没意义,呵呵!

一步步调整参数,直到没有这个warn信息:

    #syntax: fastcgi_buffers the_number is_size 

    #default: fastcgi_buffers 8 4k/8k 

    #context: http, server, location 

    #fastcgi_buffers 256 4k; # Sets the buffer size to 4k + 256 * 4k = 1028k

    fastcgi_buffers 32 4k;

-----------------------------------------------------------

参考:http://wiki.nginx.org/HttpFcgiModule

标签:Nginx,nginx,buffers,缓冲区,fastcgi,4K
From: https://blog.csdn.net/cumtglad/article/details/139292124

相关文章

  • nginx后端健康检查nginx_upstream_check_module
    一:nginx后端健康检查ngx_http_upstream_modulenginx自带健康检查的缺陷:Nginx只有当有访问时后,才发起对后端节点探测。如果本次请求中,节点正好出现故障,Nginx依然将请求转交给故障的节点,然后再转交给健康的节点处理。所以不会影响到这次请求的正常进行。但是会影响效率,因为......
  • Nginx反向代理之 upstream 模块
    upstream模块的内容应放于nginx.conf配置的http{}标签内,其默认的调度算法是rr(轮循round-robin)ngx_http_upstream_module模块官方文档upstream模块内部server标签参数说明#提示:以上的参数和专业的haproxy参数类似,但不如haproxy的参数易懂。upstream模块调度算......
  • docker安装nginx
    1.拉取镜像dockerpullnginx  2.创建容器dockerrun--namemy-nginx-p80:80-dnginx3.找个文件夹创建以下目录,mkdir-p{conf,conf.d,html,logs}4.从创建的nginx容器中复制配置文件到本地目录9a2becc47dfc是你创建的nginx容器id,dockercp 容器ID:源位置目标位置......
  • 深入理解和配置Nginx:从基础到高级
    深入理解和配置Nginx:从基础到高级Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3代理服务器。由于其稳定性、丰富的功能集、简单的配置和低资源消耗,Nginx已成为世界上最受欢迎的Web服务器之一。在这篇文章中,我们将详细介绍Nginx的配置文件结构,涵盖其核......
  • nginx命令
    先进入nginx.exe所在文件夹cdD:\nginx常用命令如下D:\nginx>startnginx---启动D:\nginx>nginx-sreload---重新加载配置D:\nginx>tasklist/fi"imagenameeqnginx.exe---查看nginx进程D:\nginx>nginx-sstop---启动杀掉nginx进程D:\nginx>taskkill/f/......
  • 在联网linux中编译nginx源码迁移到离线linux使用指南
    nginx没有预先编译好的npm包,通常需要通过编译源代码得到执行文件,下面介绍如何操作:1.找一台联网的linux服务器,安装必要的编译工具和依赖项sudoyumgroupinstall"DevelopmentTools"sudoyuminstallpcre-develzlib-developenssl-devel2.下载nginx源代码包wgethttp:/......
  • centos 7安装nginx
    1.安装nginx[root@dsc1~]#yuminstall-ynginx[root@dsc1~]#rpm-qa|grepnginxnginx-1.20.1-10.el7.x86_64nginx-filesystem-1.20.1-10.el7.noarch 2.启动systemctlstartnginxsystemctlstatusnginx 3.访问[root@dsc1~]#curl-I127.0.0.1HTTP/1.1200OKServer......
  • Nginx R31 doc-17-debugging 调试
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......
  • Nginx配置https
            HTTPS相对于HTTP提供了更高级别的数据保护和安全性,尤其适合处理敏感信息如个人数据、支付信息等,而HTTP则更适合对安全性要求不高的普通网页浏览。随着网络安全意识的提升和搜索引擎的推动,HTTPS正逐渐成为网络通信的标准。配置自签证书opensslreq-x509-nod......
  • nginx负载均衡配置详解
    Nginx的负载均衡功能是通过upstream模块来实现的,允许将客户端的请求分发到多个后端服务器,以达到分散负载、提高系统稳定性和响应速度的目的。下面是一些关于Nginx负载均衡配置的详细说明:1.定义UpstreamBlock首先,在Nginx配置文件(通常是/etc/nginx/nginx.conf或者......