在 NGinx 持有的 TCP 连接上,是否可以配置为发送TCP 保活
(不是HTTP 保持连接!)
答案1
您有 2 个选择:
- 使用库存
so_keepalive
nginx 选项 - 使用
nginx-tcp-keepalive
模块指令
听...so_keepalive=on
listen
带选项的指令so_keepalive
为server
level。请参阅http://nginx.org/en/docs/http/ngx_http_core_module.html#listen了解完整文档。此选项自 2011-12-12 起在 nginx 1.1.11 及更高版本中可用。
tcp_keepalive=on
这nginx-tcp-keepalive模块尼古拉斯·维耶诺特提供一系列tcp_keep*
指令,location
级别为。此模块应在现代 Linux 和 BSD 系统上正常工作。Mac OS X 支持仅限于tcp_keepalive
。该模块最初是在 nginx 获得该选项时发布的so_keepalive
。我还没有尝试过该模块是否仍然与较新版本的 nginx 兼容。
答案2
答案3
目前,只有邮件代理模块支持“so_keepalive”指令。
答案4
有一个 LD_PRELOAD 模块可以打开 keepalive,即使应用程序没有这样做的选项。(我不知道它是否适用于 nginx。)