请求使用了HTTP长轮询long-polling机制如何nginx没有配置proxy_buffering off;参数时nginx何时会把响应的数据返回给前端请详细解释
当nginx没有配置proxy_buffering off;参数时,它会根据以下条件来决定何时将响应数据返回给前端:
-
客户端请求到达nginx:当客户端发送一个HTTP请求到nginx时,nginx会立即将请求转发给后端服务器(如应用服务器)。
-
后端服务器处理请求:后端服务器接收到请求后开始处理,并生成响应数据。
-
后端服务器将响应数据发送给nginx:一旦后端服务器生成响应数据,它会立即将响应数据发送给nginx。
-
响应数据到达nginx:nginx接收到后端服务器发送的响应数据。
-
响应数据缓存到proxy_buffer:当nginx接收到响应数据后,如果
proxy_buffering参数被设置为默认值on,则响应数据将被缓存到proxy_buffer。 -
缓存响应数据:如果nginx的
proxy_buffering参数被设置为off,则响应数据将被立即发送给客户端,而不进行缓存。 -
到达发送时间限制:如果nginx的
proxy_buffering参数被设置为on,并且响应数据没有达到发送时间限制(默认为60秒),那么nginx会等待更多的数据到达。 -
达到发送时间限制:如果响应数据在60秒内没有达到发送时间限制,nginx将会将缓存的响应数据发送给客户端。
需要注意的是,HTTP长轮询机制本身是一个轮询过程,当后端服务器的响应数据尚未完全生成时,nginx会等待更多的数据到达。因此,nginx会根据proxy_buffering参数的设置和发送时间限制来决定何时将响应数据返回给前端
原文地址: http://www.cveoy.top/t/topic/iJJk 著作权归作者所有。请勿转载和采集!