Nginx中文文档-ngx_http_core_module(D-H)

本文档包含以下指令:default_type、directio、directio_alignment、disable_symlinks、error_page、etag、http

default_type

语法:default_type mime-type;
默认:default_type text/plain;
上下文:http, server, location

定义了响应的默认MIME类型。文件扩展名与MIME类型的对应关系可以在types指令中设置。

directio

语法:directio size | off;
默认:directio off;
上下文:http, server, location
版本:0.7.7+

启用O_DIRECT标识(FreeBSD、Linux系统)、F_NOCACHE标识(Mac OS X系统)或directio函数(Solaris),当读取的文件大小大于或等于指定的大小时生效。该指令自动禁用sendfile的请求(0.7.15版本起)。对于大文件服务十分有效:
directio 4m;
也可以用于在Linux使用aio。

directio_alignment

语法:directio_alignment size;
默认:directio_alignment 512;
上下文:http, server, location
版本:0.8.11+

为directio设置对齐大小。大多数情况下,512字节的对其已足够。但是,当Linux系统使用XFS文件系统时,这个值应该增加到4K。

disable_symlinks

语法:disable_symlinks off;
      disable_symlinks on | if_not_owner [from=part];
默认:disable_symlinks off;
上下文:http, server, location
版本:1.1.15+

定义打开文件时如何处理文件的符号连接:
off
路径中存在符号连接是可以的,不会去检查。这是默认的行为。
on
如果路径中有任何符号连接,文件访问会被拒绝。
if_not_owner
如果访问的文件的符号连接和文件不是同一个属主,文件访问会被拒绝。
from=part
检查符号连接时(参数on和if_not_owner),路径的所有部分都是按正常规则检测的。检测符号连接会避免指定附加的from=part参数开头的路径。这种情况下,只会检查以参数指定开头的路径。如果值不是路径的开头,会检测全部的路径。如果值匹配完整文件名,则符号连接不会检测。参数可以包含变量。
例子:
disable_symlinks on from=$document_root;
指令只会在有openat()和fstatat()接口的系统上可用。这些系统包括高版本的FreeBSD、Linux和Solaris。
参数on和if_not_owner增加程序开销。
在不支持的系统上,只会查询阅读权限。
目前,ngx_http_autoindex_module, ngx_http_random_index_module, 和 ngx_http_dav_module模块忽略这个指令。

error_page

语法:error_page code … [=[response]] uri;
默认:–
上下文:http, server, location, if in location

为指定的错误定义显示的URI。error_page指令在当前等级上如果没有定义会继承自上一级。URI可以包含变量。
例子:

error_page 404             /404.html;
error_page 500 502 503 504 /50x.html;

同时,还可以将返回码改变,通过=response语法,例如:
error_page 404 =200 /empty.gif;
如果错误响应被代理服务器或FastCGI、uwsgi、SCGI服务处理,服务器可能会返回不同的返回码(如200、302、401或404),可以通过下面方式响应返回的状态码:
error_page 404 = /404.php;
也可以用重定向来处理错误:

error_page 403      http://example.com/forbidden.html;
error_page 404 =301 http://example.com/notfound.html;

默认情况下,会返回302状态码。这只能改成一种重定向返回码(301、302、303或307)。
如果内部重定向过程中不需要改变URI,可以将错误传给一个location中:

location / {
    error_page 404 = @fallback;
}

location @fallback {
    proxy_pass http://backend;
}

如果url处理过程中出现了错误,将会返回给客户端最后一次的错误码。

etag

语法:etag on | off;
默认:etag on;
上下文:http, server, location
版本:1.3.3+

为静态文件启用/禁用自动生成ETag返回头功能。

http

语法:http{…}
默认:–
上下文:main

为HTTP服务器指令提供配置文件上下文。