许多站点建议在 nginx 的 listen 指令中使用“延迟”。这在 Ubuntu 安装中是必需的,还是“听 80”在默认情况下“延迟”就足够了?
listen 80 default deferred; # for Linux
Run Code Online (Sandbox Code Playgroud)
deferred
默认情况下在 Ubuntu 上没有启用,没有默认启用它的补丁。
以下是我试图了解该选项的作用。
来自http://wiki.nginx.org/HttpCoreModule#listen的参考:
deferred -- 表示使用
accept(2)
在 Linux 上通过选项延迟的TCP_DEFER_ACCEPT
对,它指的是手册页accept
,第 2 节 - 系统调用(内核提供的函数)。不幸的是,我在那个手册页中找不到任何关于它的效果的信息,所以我开始挖掘源代码 ( apt-get source nginx
)。
该选项在nginx-0.8.54/src/http/ngx_http_core_module.c:3534
. 如果deffered accept
不支持,您应该在启动时收到错误消息:
此平台不支持延迟接受,忽略
在这一点上,我停止了进一步的搜索。deferred
如果无法禁用,则在 nginx 中默认启用是没有意义的。