NGINX的listen指令中deferred选项是什么意思?

62

我看到过添加“deferred”选项的NGINX配置示例,该选项添加到了listen指令中。

server { 
  listen 80 default deferred;
  ... 
}

我无法理解它的作用(以及是否应该使用它),文档对我来说也没有太多意义。

deferred -- 表示我们应该使用Linux上的TCP_DEFER_ACCEPT选项来延迟accept(2)的调用

有人能解释一下这个选项是用来干什么的吗?

1个回答

60

TCP_DEFER_ACCEPT能够减少服务器和客户端之间的预备交互,从而提高性能。

你可以在这里了解更多相关信息。


1
基本上,我建议跳过它。 - Dayo
1
FYI,“deferred”仅适用于Linux。例如,在FreeBSD上它不起作用。 - Henk
3
链接已损坏,请尝试使用此链接:https://web.archive.org/web/20130521025331/http://www.techrepublic.com/article/take-advantage-of-tcpip-options-to-optimize-data-transmission/1050771 - sman591
1
似乎链接已移至此处http://www.techrepublic.com/article/take-advantage-of-tcp-ip-options-to-optimize-data-transmission/ - Oleg2tor
9
这个问题在2017年还有意义吗? - PKHunter
1
@PKHunter 可能如此 - 根据 @oleg2tor 建议更新的链接,TCP_DEFER_ACCEPT 是提高流数据性能的一种技术。 - Devy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接