使用uwsgi协议时uwsgi_socket_keepalive有什么影响?

使用uwsgi协议时uwsgi_socket_keepalive有什么影响?

我正在寻找一些针对 nginx 和 uwsgi 上游进行优化的选项,并注意到在keepalive文档说:

SCGI 和 uwsgi 协议没有保持连接的概念

但是有一个名为的参数uwsgi_socket_keepalive其中文档讨论了套接字的 keepalive 超时。我对此感到困惑,因为据我所知,在使用 uwsgi 套接字时,我们默认使用 uwsgi 协议。这是否意味着在使用 uwsgi 协议时会忽略此参数(以及其他 keepalive 相关参数)?

答案1

这是指两件完全不同的事情。

keepalive的参数是upstream指在处理完一个请求后,可重复使用的连接保持打开状态的时间。某些类型的连接(例如 HTTP、FastCGI)可以在一个打开的连接上处理多个请求,而无需关闭并重新打开它。

该指令uwsgi_socket_keepalive特别指 TCP keepalive 功能,该功能可检测打开的空闲连接是否仍然有效。但在实践中,这确实没有多大意义,因为 uwsgi 连接不可重用,因此它会关闭,并且每次请求都会打开一个新连接;在正常运行中,它不会长时间处于空闲状态。

相关内容