nginx proxy_cache缓存详解

1. 关于缓冲区指令

1.1 proxy_buffer_size

语法: proxy_buffer_size size;
默认值:    proxy_buffer_size 4k|8k;
上下文:    http, server, location
  1. 该缓冲用于来自上游服务器响应的开始部分,在该部分通常包含一个小小的响应头
  2. 该缓冲区大小默认等于proxy_buffers指令设置的一块缓冲区的大小,没有必要也跟着设置太大。 proxy_buffer_size最好单独设置,一般设置个4k就够了,但它也可以被设置得更小。
  3. 一块缓冲区的大小通常等于一个内存页的大小(4K或者8K),获取Linux 内存页(基页)大小的命令:getconf PAGE_SIZE,一般的输出是4096,即 4KB。

1.2 proxy_buffering

语法: proxy_buffering on | off;
默认值:    proxy_buffering on;
上下文:    http, server, location
  1. 该指令控制缓冲是否启用。默认情况下,它的值是“on”。如果这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。 但是无论proxy_buffering是否开启,对proxy_buffer_size配置都会起作用。
  2. 当开启缓冲时,nginx尽可能快地从被代理的服务器接收响应,再将它存入proxy_buffer_size和proxy_buffers指令设置的缓冲区中。如果响应无法整个纳入内存,那么其中一部分将存入磁盘上的临时文件,某些请求的响应过大,则超过_buffers的部分将被缓冲到硬盘, 当然这将会使读取响应的速度减慢, 影响用户体验。通过proxy_max_temp_file_size和proxy_temp_file_write_size指令可以控制临时文件的写入。
  3. 当关闭缓冲时,收到响应后,nginx立即将其同步传给客户端。nginx不会尝试从被代理的服务器读取整个请求,而是将proxy_buffer_size指令设定的大小作为一次读取的最大长度(所以无论是否开启,proxy_buffer_size都起作用)。每次传输内容小了,效率肯定会有影响。
  4. 响应头“X-Accel-Buffering”传递“yes”或“no”可以动态地开启或关闭代理的缓冲功能。 这个能力可以通过proxy_ignore_headers指令关闭。

proxy_buffering启用时,要提防使用的代理缓冲区太大。这可能会吃掉你的内存,限制代理能够支持的最大并发连接数。

1.3 proxy_buffers

语法: proxy_buffers number size;
默认值:    proxy_buffers 8 4k|8k;
上下文:    http, server, location
  1. 为每个连接设置缓冲区的数量为number,每块缓冲区的大小为size。这些缓冲区用于保存从被代理的服务器读取的响应。
  2. proxy_buffers的缓冲区大小一般会设置的比较大,以应付大网页。proxy_buffers当中单个缓冲区的大小是由系统的内存页面大小决定的,Linux系统中一般为4k。 proxy_buffers由缓冲区数量和缓冲区大小组成的。总的大小为number*size。

1.4 proxy_busy_buffers_size

语法: proxy_busy_buffers_size size;
默认值:    proxy_busy_buffers_size 8k|16k;
上下文:    http, server, location
  1. 当开启缓冲响应的功能以后,在没有读到全部响应的情况下,写缓冲到达一定大小时,nginx一定会向客户端发送响应,直到缓冲小于此值。这条指令用来设置此值。
  2. 同时,剩余的缓冲区可以用于接收响应,如果需要,一部分内容将缓冲到临时文件。该大小默认是proxy_buffer_size和proxy_buffers指令设置单块缓冲大小的两倍。

1.5 proxy_max_temp_file_size

语法: proxy_max_temp_file_size size;
默认值:    proxy_max_temp_file_size 1024m;
上下文:    http, server, location
  1. 打开响应缓冲以后,如果整个响应不能存放
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值