tcp_nodelay
语法:tcp_nodelay on | off
默认:tcp_nodelay on
上下文: http, server, location
启用或禁用TCP_NODELAY选项。该功能仅在连接已过渡到keep-alive状态下有效。
tcp_nopush
语法:tcp_nopush on | off
默认:tcp_nopush off
上下文:http, server, location
启用或禁用tcp_nopush功能,在FreeBSD系统上通过TCP_NOPUSH socket选项实现,在Linux通过TCP_CORK socket选项实现。只有在sendfile生效状态下才能启用。启用该选项将允许:
- Linux和FreeBSD 4.*系统下在一个包中发送响应头和文件开头
- 在满包中发送一个文件
try_files
语法:try_files file … uri;
try_files file … =code;
默认:—
上下文:server, location
按指定顺序检测文件是否存在,并返回第一个找到的文件,该过程在当前上下文中执行。文件的路径是由root和alias指令以及file参数构成。有可能会通过在名字后面添加“/”检测目录是否存在,例如“$uri/”。如果没有找到任何的文件,则会产生一个内部重定向到最后一个参数uri指定的文件:
location /images/ { try_files $uri /images/default.gif; } location = /images/default.gif { expires 30s; }
最后一个参数可以指向一个location,如下面的例子所示。从0.7.51版本开始,最后一个参数也可以是一个code:
location / { try_files $uri $uri/index.html $uri.html =404; }
代理Mongrel的例子:
location / { try_files /system/maintenance.html $uri $uri/index.html $uri.html @mongrel; } location @mongrel { proxy_pass http://mongrel; }
Drupal/FastCGI举例:
location / { try_files $uri $uri/ @drupal; } location ~ \.php$ { try_files $uri @drupal; fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param QUERY_STRING $args; ... other fastcgi_param's } location @drupal { fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/index.php; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param QUERY_STRING q=$uri&$args; ... other fastcgi_param's }
下面的例子中,
location / { try_files $uri $uri/ @drupal; }
try_files指令等价于:
location / { error_page 404 = @drupal; log_not_found off; }
下面的例子,
location ~ \.php$ { try_files $uri @drupal; fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; ... }
try_files指令在将请求发送到FastCGI服务器之前检测文件是否存在。
Wordpress 和 Joomla的例子:
location / { try_files $uri $uri/ @wordpress; } location ~ \.php$ { try_files $uri @wordpress; fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name; ... other fastcgi_param's } location @wordpress { fastcgi_pass ...; fastcgi_param SCRIPT_FILENAME /path/to/index.php; ... other fastcgi_param's }
types
语法:types { … }
默认:types {
text/html html;
image/gif gif;
image/jpeg jpg;
}
上下文:http, server, location
响应的MIME与文件扩展的对照表,大小写不敏感。多个扩展名可以映射为同一个类型:
types { application/octet-stream bin exe dll; application/octet-stream deb; application/octet-stream dmg; }
在conf/mime.types文件中定义了一个比较完整的映射表。
要定义一个特殊的location,所有的MIME类型都是application/octet-stream,可以用下面的配置:
location /download/ { types { } default_type application/octet-stream; }
types_hash_bucket_size
语法:types_hash_bucket_size size
默认:types_hash_bucket_size 64
上下文:http, server, location
设置一个类型哈希表的大小。1.5.13版本之前,默认值的大小取决于CPU缓存行。
types_hash_max_size
语法:types_hash_max_size size
默认:types_hash_max_size 1024
上下文:http, server, location
设置类型哈希表最大的大小。
underscores_in_headers
语法:underscores_in_headers on | off
默认:underscores_in_headers off
上下文:http, server
启用或禁用客户端请求头域中的下划线。如果禁用了此功能,客户端请求头域中的下划线会被认为是无效的。
如果该指令定义在sever块中,只对默认的服务器有效。该值同样作用于监听了同一端口和IP的虚拟主机。
variables_hash_bucket_size
语法:variables_hash_bucket_size size
默认:variables_hash_bucket_size 64
上下文:http
设置一个变量哈希表的大小。
variables_hash_max_size
语法:variables_hash_max_size size
默认:variables_hash_max_size 1024
上下文:http
设置最大的变量哈希表大小。1.5.13版本以前,默认值是512.