nginx http core module

nginx http core module

absolute_redirect

Syntax:     absolute_redirect on | off;
Default:    

absolute_redirect on;

Context:    http, server, location

This directive appeared in version 1.11.8. 

如果禁用该项,Nginx的反向代理连接将会是相对定位的。

aio

Syntax:     aio on | off | threads[=pool];
Default:    

aio off;

Context:    http, server, location

This directive appeared in version 0.8.11. 

使用于Linux或FreeBSD系统上,标识是否允许或禁止异步IO

location /video/ {
    aio            on;
    output_buffers 1 64k;
}

在FreeBSD系统上,AIO特性起用于FreeBSD 4.3版本,到FreeBSD 11.0,AIO也可以静态链接到内核中,如:

options VFS_AIO

或动态加载到内核中,如:

kldload aio

在Linux上,AIO起用于Linux 2.6.22,有必要开启 directio ,否则将会阻塞读。

location /video/ {
    aio            on;
    directio       512;
    output_buffers 1 128k;
}

在Linux上,directio 仅用于读对齐边界的512字节(XFS是4K)的块,未对齐边界的文件读取时使用阻塞模式。也就是大小切分且整好的块,就直接读取了,如果不是切分好的整好大小的块,AIO读取的时候,将会发生阻塞。
这同样适用于不是从文件头部开始字节范围请求和FLV请求,断点下载等情况,就是从起点字节到结束字节请求,起点字节不是文件开头处,结束字节不是文件末尾,说白了就是取文件中指定起止字节的一段内容:不是字节对齐的时候,会阻塞读取。

当在Linux上同时设置了 aiosendfile 时,AIO用于文件大小大于或等于 directio 指定定的文件, sendfile 用于小文件或 directio 被禁用的时候。

location /video/ {
    sendfile       on;  //小于8M的文件,使用sendfile
    aio            on;  //大于等于8M的文件,使用aio
    directio       8m;
}

最后,文件可以用多线程来读和 send ,而不用阻塞 worker 进程。

location /video/ {
    sendfile       on;
    aio            threads;
}

读和 send 文件操作的线程来自于线程池中,如果线程池的名称未设置,则线程池名称默认为 default ,线程池名称也可以使用变量来设置

aio threads=pool$disk;

默认情况下,多线程是禁用的,可以使用 --with-threads 编译参数来编译启用,目前多线程仅兼容 epollkqueueeventport 方法。多线程send file仅在Linxu上支持,这也解释了为什么默认是不开启多线程的,因为有诸多的限制条件,默认开启的都是满足几乎所有系统的。
其他的参看 sendfile 指令。

<h3 id="2"> aio_write </h3>

Syntax:     aio_write on | off;
Default:    

aio_write off;

Context:    http, server, location

This directive appeared in version 1.9.13. 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,373评论 11 349
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 2,090评论 0 9
  • 顾客为什么来?(之五) 文:马亮亮 在贺兰,很多美食在某些人的大脑中都有着标签。其实不仅是贺兰,在任何地方...
    时光匣子阅读 584评论 0 0
  • MASConstraintMaker 涉及的类有MASConstraint,包含持有的具体数据 创建maker的方...
    独孤流阅读 862评论 0 0