Nginx反向代理
默认,NGINX会为后端服务器的响应提供缓冲区。一个响应被存放在内部缓冲区中,直到整个响应被接收到,然后发送给客户端。缓冲区针对一些慢客户端(如果响应被NGINX同步地返回,将浪费后端服务器的时间)可以提高性能。然而,如果NGINX开启了缓冲区,将使得后端服务器快速地处理响应,而当客户端需要下载它们时,NGINX会存储响应尽可能久的时间。我们可以使用proxy_buffers来为每一个请求设置缓冲区的大小和数量。响应的第一部分被存在单独的缓冲区内,其大小通过proxy_buffer_size指令设置这部分通常包含一些比较小的响应头,并且比剩下的响应缓冲区更小。如
location /some/path/ { proxy_buffers 16 4k; # 16个缓冲区,每个缓冲区4K(默认为一个内存页,可通过getconf PAGE_SIZE获取) proxy_buffer_size 2k; # 用于存放响应的第一个部分信息, 比普通缓冲区4K更小 proxy_pass http://localhost:8000;} 如果缓冲区禁用了,当NGINX接收到后端服务器的响应时,会同步地发送给客户端。这种情况可能在一些快速客户端交互(需要尽可能快接收响应)中会使用。如果你想使某个location禁用缓冲区,可以使用proxy_buffering off指令。location /some/path/ { proxy_buffering off; proxy_pass http://localhost:8000;}