Nginx中文文档-ngx_http_core_module(I-K)

本文档包含以下指令:if_modified_since、ignore_invalid_headers、internal、keepalive_disable、keepalive_requests、keepalive_timeout

if_modified_since

语法:if_modified_since off | exact | before;
默认:if_modified_since exact;
上下文: http, server, location
版本:0.7.24+

定义如何比较请求头中的“If-Modified-Since”时间:
off
忽略“If-Modified-Since”请求头(0.7.34版本起)
exact
精确匹配
before
响应的修改时间小于或等于请求头中的“If-Modified-Since”值

ignore_invalid_headers

语法:ignore_invalid_headers on | off;
默认:ignore_invalid_headers on;
上下文:http, server

控制头域中无效的名字是否需要被忽略。正确的名字是由英文字母、数字、连字符及可能的下划线(在underscores_in_headers指令中控制)组成。
当这个指令在server的上下文中定义,只有在server是一个默认的设置时才有效。指定的值同样对监听了相同的端口和地址的虚拟主机有效。

internal

语法:internal;
默认:–
上下文:location

定义指定的location只能被用于内部请求。对于外部的请求,会返回404错误码。内部请求有下面的这些:

  • 通过error_page、index、random_index和try_files指令重定向的请求
  • 根据上游服务器响应头中的“X-Accel-Redirect”进行重定向的请求
  • 通过ngx_http_ssi_module模块的“include virtual”命令及ngx_http_addition_module模块指令提交的子请求
  • 通过rewrite指令修改的请求

例子:

error_page 404 /404.html;

location /404.html {
    internal;
}

为了防止错误的配置导致循环重定向,每个请求的内部重定向限制在10次。如果达到了限制,会返回500错误码。这种情况下,可以在错误日志中看到“rewrite or internal redirection cycle”。

keepalive_disable

语法:keepalive_disable none | browser …;
默认:keepalive_disable msie6;
上下文:http, server, location

对非正常行为的浏览器禁用keep-alive连接。browser参数指定了哪些浏览器会被影响。msie6禁用了老版本的IE在收到post请求的keep-alive连接。safari值禁用了在Mac OS X及类Mac OS X操作系统上的Safari和类Safari浏览器的keep-alive连接。none值允许所有浏览器保持连接。
在1.1.18前,safari匹配所有操作系统上的Safari和类Safari浏览器,默认情况下禁用keep-alive。

keepalive_requests

语法:keepalive_requests number;
默认:keepalive_requests 100;
上下文:http, server, location
版本:0.8.0+

设置一个连接中最大的请求数。超过请求数最大值,连接将被关闭。

keepalive_timeout

语法:keepalive_timeout timeout [header_timeout];
默认:keepalive_timeout 75s;
上下文:http, server, location

第一个参数定义了客户端发起连接在服务端保持开启的超时时间。0值表示禁用客户端发起的连接的保持。第二个可选参数设置了响应头中“Keep-Alive: timeout=time” 的值。两个参数可能不同。
“Keep-Alive: timeout=time”头会被Mozilla和Konqueror浏览器识别,IE会在60秒后自动关闭连接。

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服务器指令提供配置文件上下文。