alias
语法:alias file-path|directory-path; 默认值:no 使用字段:location 这个指令指定一个路径使用某个某个,注意它可能类似于root,但是document root没有改变,请求只是使用了别名目录的文件
location /i/ { alias /spool/w3/images/; }
上个例子总,请求"/i/top.gif"将返回这个文件: "/spool/w3/images/top.gif"。 Alias同样可以用于带正则表达式的location,如:
location ~ ^/download/(.*)$ { alias /home/website/files/$1; }
请求"/download/book.pdf"将返回"/home/website/files/book.pdf"。 同样,也可以在别名目录字段中使用变量。
client_body_buffer_size 语法:client_body_buffer_size the_size 默认值:8k/16k 使用字段:http, server, location 这个指令可以指定连接请求实体的缓冲区大小。 如果连接请求超过缓存区指定的值,那么这些请求实体的整体或部分将尝试写入一个临时文件。 默认值为两个内存分页大小值,根据平台的不同,可能是8k或16k。
client_body_temp_path 语法:client_body_temp_path dir-path [ level1 [ level2 [ level3 ] 默认值:client_body_temp 使用字段:http, server, location 指令指定连接请求实体试图写入的临时文件路径。 可以指定三级目录结构,如:
client_body_temp_path /spool/nginx/client_temp 1 2;
那么它的目录结构可能是这样:
/spool/nginx/client_temp/7/45/00000123457
client_body_timeout 语法:client_body_timeout time 默认值:60 使用字段:http, server, location 指令指定读取请求实体的超时时间。 这里的超时是指一个请求实体没有进入读取步骤,如果连接超过这个时间而客户端没有任何响应,Nginx将返回一个"Request time out" (408)错误
client_header_buffer_size 语法:client_header_buffer_size size 默认值:1k 使用字段:http, server 指令指定客户端请求头部的缓冲区大小 绝大多数情况下一个请求头不会大于1k 不过如果有来自于wap客户端的较大的cookie它可能会大于1k,Nginx将分配给它一个更大的缓冲区,这个值可以在large_client_header_buffers里面设置。
client_max_body_size 语法:client_max_body_size size 默认值:client_max_body_size 1m 使用字段:http, server, location 指令指定允许客户端连接的最大请求实体大小,它出现在请求头部的Content-Length字段。 如果请求大于指定的值,客户端将收到一个"Request Entity Too Large" (413)错误。 记住,浏览器并不知道怎样显示这个错误。
default_type 语法: default_type MIME-type 默认值:default_type text/plain 使用字段:http, server, location 某个文件在标准MIME视图没有指定的情况下的默认MIME类型。 参考types。
location = /proxy.pac { default_type application/x-ns-proxy-autoconfig; } location = /wpad.dat { rewrite . /proxy.pac; default_type application/x-ns-proxy-autoconfig; }
directio 语法:directio [size|off] 默认值:directio off 使用字段:http, server, location 这个参数指定在读取文件大小大于指定值的文件时使用O_DIRECT(FreeBSD, Linux),F_NOCACHE(Mac OS X)或者调用directio()函数(Solaris),当一个请求用到这个参数时会禁用sendfile,通常这个参数用于大文件。
directio 4m;
error_page 语法:error_page code [ code... ] [ = | =answer-code ] uri | @named_location 默认值:no 使用字段:http, server, location, location 中的if字段 这个参数可以为错误代码指定相应的错误页面
error_page 404 /404.html; error_page 502 503 504 /50x.html; error_page 403 http://example.com/forbidden.html; error_page 404 = @fetch;
同样,你也可以修改返回的错误代码:
error_page 404 =200 /.empty.gif;
如果一个错误的响应经过代理或者FastCGI服务器并且这个服务器可以返回不同的响应码,如200, 302, 401或404,那么可以指定响应码返回:
error_page 404 = /404.php;
如果在重定向时不需要改变URI,可以将错误页面重定向到一个命名的location字段中:
location / ( error_page 404 = @fallback; ) location @fallback ( proxy_pass http://backend; )
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"时间
internal 语法:internal 默认值:no 使用字段: location internal指令指定某个location只能被“内部的”请求调用,外部的调用请求会返回"Not found" (404) “内部的”是指下列类型: ·指令error_page重定向的请求。 ·ngx_http_ssi_module模块中使用include virtual指令创建的某些子请求。 ·ngx_http_rewrite_module模块中使用rewrite指令修改的请求。 一个防止错误页面被用户直接访问的例子:
error_page 404 /404.html; location /404.html { internal; }
location 语法:location [=|~|~|^~|@] /uri/ { ... } 默认值:no 使用字段:server 这个参数根据URI的不同需求来进行配置,可以使用字符串与正则表达式匹配,如果要使用正则表达式,你必须指定下列前缀: 1、~ 不区分大小写。 2、~ 区分大小写。 要确定该指令匹配特定的查询,程序将首先对字符串进行匹配,字符串匹配将作为查询的开始,最确切的匹配将被使用。然后,正则表达式的匹配查询开始,匹配查询的第一个正则表达式找到后会停止搜索,如果没有找到正则表达式,将使用字符串的搜索结果。 在一些操作系统,如Mac OS X和Cygwin,字符串将通过不区分大小写的方式完成匹配(0.7.7),但是,比较仅限于单字节的语言环境。 正则表达式可以包含捕获(0.7.40),并用于其它指令中。 可以使用“^~”标记禁止在字符串匹配后检查正则表达式,如果最确切的匹配location有这个标记,那么正则表达式不会被检查。 使用“=”标记可以在URI和location之间定义精确的匹配,在精确匹配完成后并不进行额外的搜索,例如有请求“/”发生,则可以使用“location = /”来加速这个处理。 即使没有“=”和“^~”标记,精确的匹配location在找到后同样会停止查询。 下面是各种查询方式的总结: 1、前缀“=”表示精确匹配查询,如果找到,立即停止查询。 2、指令仍然使用标准字符串,如果匹配使用“^~”前缀,停止查询。 3、正则表达式按照他们在配置文件中定义的顺序。 4、如果第三条产生一个匹配,这个匹配将被使用,否则将使用第二条的匹配。 例:
location = / { # 只匹配 / 的查询. [ configuration A ] } location / { # 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。 [ configuration B ] } location ^~ /images/ { # 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。 [ configuration C ] } location ~* \\.(gif|jpg|jpeg)$ { # 匹配任何以gif, jpg, or jpeg结尾的文件,但是所有 /images/ 目录的请求将在Configuration C中处理。 [ configuration D ] }
各请求的处理如下例: ·/ -> configuration A ·/documents/document.html -> configuration B ·/images/1.gif -> configuration C ·/documents/1.jpg -> configuration D 注意你可以以任何顺序定义这4个配置并且匹配结果是相同的,但当使用嵌套的location结构时可能会将配置文件变的复杂并且产生一些比较意外的结果。 标记“@”指定一个命名的location,这种location并不会在正常请求中执行,它们仅使用在内部重定向请求中。(查看error_page和try_files)
root 语法:root path 默认值:root html 使用字段:http, server, location ,location中的if字段 请求到达后的文件根目录。 下例中:
location /i/ { root /spool/w3; }
如果请求"/i/top.gif"文件,nginx将转到"/spool/w3/i/top.gif"文件。你可以在参数中使用变量。 注意:在请求中root会添加这个location到它的值后面,即"/i/top.gif"并不会请求"/spool/w3/top.gif"文件,如果要实现上述类似于apache alias的功能,可以使用alias指令。
原文链接:https://www.cnblogs.com/kerwing/p/8309846.html