天翼云代理,天翼云代理商,北京代理商
天翼云2.5折专线:18510009100/18510009200(全国市话)

nginx 缓存大小的含义

2022-01-07 10:09:37

目录

  • 问题
  • 解决
    • proxy_buffer_size
    • proxy_buffers
    • proxy_busy_buffers_size
  • 结尾

问题

上一篇文章,我们已经介绍了解决服务器 net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) 问题的方法,是通过修改 nginx 代理服务的缓存大小,具体的修改方法如下:

proxy_buffer_size 128k;

proxy_buffers 32 128k;

proxy_busy_buffers_size 128k;

很多人不禁要问,这三个配置项,它们具体都有哪些功能呢?我们今天就来揭秘一下。

解决

接下来,我们就分别分析一下。

proxy_buffer_size

proxy_buffer_size 配置项的语法如下:

proxy_buffer_size size

proxy_buffer_size 的默认值是 4k 或者 8k, 它的作用是指定 nginx 读缓存的大小。Nginx 使用 proxy_buffer_size 的大小申请相应 read_buf,即指定 upstream header 的最大长度,如果响应头超过了这个长度,nginx 会报 upstream sent too big header 的错误,然后客户端收到 502 的错误码。我们将该值调整为 128k,保证足够的读缓存大小。

proxy_buffers

proxy_buffers 配置项的语法如下:

proxy_buffers 数量 size

proxy_buffers 的默认值是 256 8k,它的作用是设置存储被代理服务器响应的 body 所占用的 buffer 个数以及每个 buffer 大小。默认值的意思是开辟了 256 个长度为 8k 大小的 read_buf 用来存储 body,但是并不是连接建立时就开辟 256 个对应的缓存,而是在当前 buffer 不够存储响应的 body 大小时才会申请一个新的 buffer,最多申请 256 个 buffer。修改后的方案,总的缓存 buffer 大小较默认值增加了一倍。

proxy_busy_buffers_size

proxy_busy_buffers_size 配置项的语法如下:

proxy_busy_buffer_size  size

proxy_busy_buffer_size 没有单独的默认值,它并不是独立的空间,其实它是 proxy_buffers 和 proxy_buffer_size 的一部分。Nginx 会在没有完全读完后端的响应数据时,就开始向客户端传送数据,所以它会划分出一部分 busy 状态的 buffer 来专门向客户端传送数据(建议为 proxy_buffers 中单个缓冲区的2倍),然后它继续从后端取数据。proxy_busy_buffer_size 参数用来设置处于 busy 状态的 buffer 大小的参数。如果完整数据大小小于 busy_buffer 大小,当数据传输完成后,马上传给客户端;如果完整数据大小不小于 busy_buffer 大小,则装满 busy_buffer 后,马上传给客户端。

结尾

好了,今天关于 nginx 的三个缓存配置项(proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size)的作用就介绍完了。相信大家即使没有完全理解,也多少也所收获。

12年经验 · 提供上云保障

服务热线:132-6161-6125(手机) 400-150-1900(全国市话)

站内导航: 天翼云服务器价格| 天翼云购买流程| 天翼云代理| 北京天翼云代理商| 杭州天翼云代理| 深圳天翼云代理商| 钉钉代理商| 阿里云代理| 公司官网

我公司收款账号| 天翼云备案系统

CopyRight © 2019 天翼云代理商. All Rights Reserved 京ICP备2024071855号-7 管理-北京优胜智连科技有限公司