> For the complete documentation index, see [llms.txt](https://bohans.gitbook.io/devops/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bohans.gitbook.io/devops/ngnix/ji-chu-zhi-shi/4.-nginx-fu-wu-qi-de-dai-li-fu-wu/4.3-nginx-fu-wu-qi-de-fan-xiang-dai-li-fu-wu/proxy-buffer-de-pei-zhi-de-7-ge-zhi-ling.md).

# Proxy Buffer的配置的7个指令

{% hint style="warning" %}
**与Proxy Buffer相关的指令proxy\_buffer\_size、proxy\_buffers、proxy\_busy\_buffers\_size等，**<mark style="color:orange;">**它们的配置都是针对每一个请求起作用的**</mark>**，而不是全局概念，即**<mark style="color:orange;">**每个请求都会按照这些指令的配置来配置各自的Buffer**</mark>**，Nginx服务器不会生成一个公共的Proxy Buffer供代理请求使用。**
{% endhint %}

Proxy Buffer启用以后，Nginx服务器会<mark style="color:blue;">**异步**</mark>地将被代理服务器的响应数据传递给客户端。

1. Nginx服务器首先尽可能地从被代理服务器那里接收响应数据，放置在<mark style="color:blue;">**Proxy Buffer**</mark>中，Buffer的大小由<mark style="color:blue;">**proxy\_buffer\_size**</mark>指令和<mark style="color:blue;">**proxy\_buffers**</mark>指令决定。
2. 如果在接收过程中，发现Buffer没有足够大小来接收一次响应的数据，Nginx服务器会将部分接收到的数据临时存放在磁盘的临时文件中，磁盘上的临时文件路径可以通过<mark style="color:blue;">**proxy\_temp\_path**</mark>指令进行设置，临时文件的大小由<mark style="color:blue;">**proxy\_max\_temp\_file\_size**</mark>指令和<mark style="color:blue;">**proxy\_temp\_file\_write\_size**</mark>指令决定。
3. 一次响应数据**被接收完成**或者**Buffer已经装满**后，Nginx服务器开始向客户端传输数据。
4. 每个Proxy Buffer装满数据后，**在从开始向客户端发送一直到Proxy Buffer中的数据全部传输给客户端的整个过程中，它都处于BUSY状态**，期间对它进行的其他操作都会失败。**同时处于BUSY状态的Proxy Buffer总大小**由<mark style="color:blue;">**proxy\_busy\_buffers\_size**</mark>指令限制，不能超过该指令设置的大小。
5. 当**Proxy Buffer关闭**时，**Nginx服务器只要接收到响应数据就会同步地传递给客户端，它本身不会读取完整的响应数据**。
