阅读Node的有关server.keepAliveTimeout的文档:
如果服务器在触发保持活动超时之前收到新数据,它将重置常规的不活动超时,即server.timeout。
与server.timeout有何不同?
听起来它们都与套接字超时有关,套接字超时只会在不活动时开始计时。
Keep-Alive是Http协议的标头部分。的Keep-Alive报头将允许多个HTTP请求通过单个连接而不是使用多个被发送。
因此,设置keepAliveTimeout将决定Keep-Alive允许这些连接保持打开状态的时间。该timeout决定的时候,服务器会等待客户端的响应的最大金额。
有关更多信息,请Keep-Alive参见:https://blog.stackpath.com/glossary-keep-alive/
该keepAliveTimeout是破坏插座之前的时间,同时timeout为已超时推定插座所需要的时间。keepAliveTimeout销毁套接字,timeout仅“确定”它已断开连接。并且提到“如果服务器在保持活动超时触发之前收到新数据,它将重置常规的不活动超时”,这很明显就好像它从这个套接字接收新数据一样,这意味着它仍然活着并且timeout应该重启
server.timeout 收到请求后允许的不活动时间(以毫秒为单位)(无需始终设置,默认为 2 分钟)
server.keepAliveTimeout是时间(以毫秒为单位)服务器将在最后一次响应后等待并保持连接打开。(不必总是设置,默认为 5 秒)