sendfile on; 开启高效文件传输模式 tcp_nopush on; 结合sendfile使用,指的是不急于推送,他会开辟一个空间,等数据满了以后一次性发送,这样高效利用了网络资源。 tcp_nodelay on; 结合keepalive使用,指的是不延迟直接推送,大大增加网络时效性。 在文件传输时,这两个参数都打开的话,看起来是互斥的。是因为linux2.5.9以后两者是可以兼容使用的。sendfile充分发挥高效的文件传输,tcp_nopush确保发送到客户端的数据包都是满的,减少网络开销,增加文件传输速速。但是当它遇到最后一个包需要发送但是又没有填满时,nginx会忽略tcp_nopush参数,tcp_nodelay强制套接字发送数据包。
sendfile on; 开启高效文件传输模式 tcp_nopush on; 结合sendfile使用,指的是不急于推送,他会开辟一个空间,等数据满了以后一次性发送,这样高效利用了网络资源。 tcp_nodelay on; 结合keepalive使用,指的是不延迟直接推送,大大增加网络时效性。 在文件传输时,这两个参数都打开的话,看起来是互斥的。是因为linux2.5.9以后两者是可以兼容使用的。sendfile充分发挥高效的文件传输,tcp_nopush确保发送到客户端的数据包都是满的,减少网络开销,增加文件传输速速。但是当它遇到最后一个包需要发送但是又没有填满时,nginx会忽略tcp_nopush参数,tcp_nodelay强制套接字发送数据包。