nginx 配置中的 proxy_buffer 和 proxy_cache 模块有什么区别

nginx 配置中的 proxy_buffer 和 proxy_cache 模块有什么区别

proxy_cache我对用于缓存客户端请求的静态文件的缓存了解一点。但proxy_buffer真的让我很困惑。它能为代理后端服务器缓冲吗?

我还看到client_max_body_sizeclient_body_buffer_size出现在nginx.confproxy_cache之后proxy_cache。这有关系吗?

答案1

代理缓冲区与 nginx 处理从代理服务器收到的响应的方式有关。

当启用缓冲时,nginx 会立即将来自代理服务器的响应接收到内存缓冲区中,并在收到响应后关闭与代理服务器的连接。然后,它将响应从其缓冲区发送到客户端。

当缓冲被禁用时,nginx 会将响应同步发送到客户端。这意味着,只要将完整的响应发送到客户端,与代理服务器的连接就会保持打开状态。

因此,缓冲是一种临时存储每个客户端的响应的方法,以允许与代理服务器的连接尽早关闭。

代理缓存是 nginx 在本地存储数据,并将缓存的数据副本提供给多个客户端的过程。这意味着代理服务器不会针对每个客户端请求进行查询,但如果缓存的数据仍然有效(生存期未过),则会从缓存中提供数据。

代理缓存使代理服务器上的负载大大减少,但可能会导致旧数据被发送给客户端。

相关内容