对于使用了upstream的nginx,在处理请求和响应数据的时候是有区别的。
在处理请求数据时,是将请求的数据包先缓存起来,待数据包接收完毕,再与上游服务器建立TCP连接,这样有助于缓解上游服务器的压力,因为在通常情况下,下游服务器的TCP连接时公网,而上游服务器的TCP连接时内网,假如客户端发送了一个10M的数据,分为每次10K发送,如果采用边接边发送的方式,则上游服务器需要一直维护TCP连接,造成上有服务器多余的资源占用。
而在处理响应时,也是因为下游与上游的网络差异,则是边接收边发送,即使如此,因为接收的快,发送的慢,下游服务器仍然需要建立缓存区来缓存上游服务器的响应。
截图来自于《深入理解Nginx模块开发与架构解析第2版》
![](https://img.haomeiwen.com/i7585574/26bf0b0b094daee7.png)
![](https://img.haomeiwen.com/i7585574/cd9ad912d1fcb79e.png)
![](https://img.haomeiwen.com/i7585574/b13d8c81aef1a59b.png)
![](https://img.haomeiwen.com/i7585574/6545be48a81370a2.png)
![](https://img.haomeiwen.com/i7585574/e538b874bdddcc7a.png)
![](https://img.haomeiwen.com/i7585574/a3a93d76474cc778.png)
网友评论