一、作用及原理

使用缓冲释放后端服务器

  反向代理的一个问题是代理大量用户时会增加服务器进程的性能冲击影响。在大多数情况下,可以很大程度上能通过利用Nginx的缓冲和缓存功能减轻。当代理到另一台服务器,两个不同的连接速度会影响客户的体验:

    1.从客户机到Nginx代理的连接

    2.从Nginx代理到后端服务器的连接

Nginx代理将暂时存储后端的响应(缓冲到内存),然后按需供给数据给客户端。如果客户端是缓慢的,允许Nginx服务器关闭到后端的连接。然后,它可以处理数据分配到客户端,以任何可能的速度。

大小size指令是针对每个请求配置的,所以增加超出你需求会影响你的性能。

二、配置项详解

  fastcgi/proxy 缓冲原理和配置是一样的。

  缓冲区的大小主要由 *_buffers 和 *_buffer_size 两个值控制。下面以默认值来讲解。

    *_buffers 控制 nginx 最多创建 8 个大小为 4K 的缓冲区。

    *_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。

*_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。

  client_body_buffer_size 处理客户端请求体buffer大小。用来处理POST提交数据,上传文件等。client_body_buffer_size 需要足够大以容纳如果需要上传POST数据。

  fastcgi_buffers,proxy_buffers 处理后端响应。如果这个buffer不够大,会引起磁盘IO。需要注意的是它们有一个上限值,这个上限值受 fastcgi_max_temp_file_size 、 proxy_max_temp_file_size控制。

三、优化