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秒后自动关闭连接。