我正在寻找一些针对 nginx 和 uwsgi 上游进行优化的选项,并注意到在keepalive
文档说:
SCGI 和 uwsgi 协议没有保持连接的概念
但是有一个名为的参数uwsgi_socket_keepalive
其中文档讨论了套接字的 keepalive 超时。我对此感到困惑,因为据我所知,在使用 uwsgi 套接字时,我们默认使用 uwsgi 协议。这是否意味着在使用 uwsgi 协议时会忽略此参数(以及其他 keepalive 相关参数)?
答案1
这是指两件完全不同的事情。
keepalive
的参数是upstream
指在处理完一个请求后,可重复使用的连接保持打开状态的时间。某些类型的连接(例如 HTTP、FastCGI)可以在一个打开的连接上处理多个请求,而无需关闭并重新打开它。
该指令uwsgi_socket_keepalive
特别指 TCP keepalive 功能,该功能可检测打开的空闲连接是否仍然有效。但在实践中,这确实没有多大意义,因为 uwsgi 连接不可重用,因此它会关闭,并且每次请求都会打开一个新连接;在正常运行中,它不会长时间处于空闲状态。