语 法:sendfile on | off;
默认值:sendfile off;
上下文:http, server, location, if in location
启用或禁用使用 sendfile()。
从 nginx 0.8.12 和 FreeBSD 5.2.1 开始,aio 可用于为 sendfile() 预加载数据:
location /video/ { sendfile on; tcp_nopush on; aio on; }
在此配置中,使用 SF_NODISKIO 标志调用 sendfile() 使其不会在磁盘 I/O 上阻塞,而是报告数据不在内存中。nginx 然后通过读取一个字节来启动异步数据加载。在第一次读取时,FreeBSD 内核将文件的前 128K 字节加载到内存中,尽管下一次读取只会加载 16K 块中的数据。这可以使用 read_ahead 指令进行更改。
在 1.7.11 版本之前,可以使用 aio sendfile; 启用预加载。