Appearance
模块 ngx_http_core_module
提示
来自deepseek解释
这是ngx_http_core_module模块官方文档的完整中文翻译。该模块包含了定义HTTP服务器行为最核心的指令,如监听端口、处理请求、设置超时、限制速率等。
模块 ngx_http_core_module
指令
absolute_redirect
- 语法:
absolute_redirect on | off; - 默认值:
absolute_redirect on; - 上下文:
http, server, location - 说明: 此指令在1.11.8版本中引入。如果禁用,nginx发出的重定向将是相对路径。另请参阅
server_name_in_redirect和port_in_redirect指令。
aio
- 语法:
aio on | off | threads[=pool]; - 默认值:
aio off; - 上下文:
http, server, location - 说明: 此指令在0.8.11版本中引入。在FreeBSD和Linux上启用或禁用异步文件I/O(AIO)。在FreeBSD上,从FreeBSD 4.3开始可以使用AIO。在FreeBSD 11.0之前,AIO可以静态链接到内核或动态加载为内核模块。在Linux上,从内核版本2.6.22开始可以使用AIO,并且需要启用
directio。当AIO和sendfile在Linux上同时启用时,对于大小大于或等于directio指定值的文件使用AIO,而对于较小文件或禁用directio时使用sendfile。最后,可以使用多线程读取和发送文件,而不会阻塞工作进程。读取和发送文件的操作会卸载到指定池的线程中。如果省略池名称,则使用名为“default”的池。池名称也可以使用变量设置。默认情况下,多线程是禁用的,需要通过--with-threads配置参数启用。目前,多线程仅与epoll、kqueue和eventport方法兼容。多线程发送文件仅在Linux上受支持。另请参阅sendfile指令。
aio_write
- 语法:
aio_write on | off; - 默认值:
aio_write off; - 上下文:
http, server, location - 说明: 此指令在1.9.13版本中引入。如果启用了
aio,则指定是否将其用于写入文件。目前,这仅在使用aio threads时有效,并且仅限于写入从代理服务器接收的数据的临时文件。
alias
- 语法:
alias path; - 默认值: —
- 上下文:
location - 说明: 为指定位置定义一个替换路径。例如,对于请求“/i/top.gif”,将发送文件
/data/w3/images/top.gif。path值可以包含变量,除了$document_root和$realpath_root。如果在使用正则表达式定义的位置内使用alias,则该正则表达式应包含捕获,并且alias应引用这些捕获。当位置匹配指令值的最后一部分时,最好使用root指令。
auth_delay
- 语法:
auth_delay time; - 默认值:
auth_delay 0s; - 上下文:
http, server, location - 说明: 此指令在1.17.10版本中引入。延迟处理未授权请求(返回401响应码),以防止在通过密码、子请求结果或JWT限制访问时的计时攻击。
chunked_transfer_encoding
- 语法:
chunked_transfer_encoding on | off; - 默认值:
chunked_transfer_encoding on; - 上下文:
http, server, location - 说明: 允许在HTTP/1.1中禁用分块传输编码。当使用尽管标准要求但实际不支持分块编码的软件时,这可能很方便。
client_body_buffer_size
- 语法:
client_body_buffer_size size; - 默认值:
client_body_buffer_size 8k|16k; - 上下文:
http, server, location - 说明: 设置用于读取客户端请求体的缓冲区大小。如果请求体大于缓冲区,则整个或部分请求体将被写入临时文件。默认情况下,缓冲区大小等于两个内存页。在x86、其他32位平台和x86-64上为8K,在其他64位平台上通常为16K。
client_body_in_file_only
- 语法:
client_body_in_file_only on | clean | off; - 默认值:
client_body_in_file_only off; - 上下文:
http, server, location - 说明: 确定nginx是否应将整个客户端请求体保存到文件中。此指令可在调试时使用,或在使用
$request_body_file变量或ngx_http_perl_module模块的$r->request_body_file方法时使用。设置为on时,临时文件在请求处理后不会被删除。值clean将导致请求处理后留下的临时文件被删除。
client_body_in_single_buffer
- 语法:
client_body_in_single_buffer on | off; - 默认值:
client_body_in_single_buffer off; - 上下文:
http, server, location - 说明: 确定nginx是否应将整个客户端请求体保存在单个缓冲区中。建议在使用
$request_body变量时使用此指令,以减少涉及的复制操作次数。
client_body_temp_path
- 语法:
client_body_temp_path path [level1 [level2 [level3]]]; - 默认值:
client_body_temp_path client_body_temp; - 上下文:
http, server, location - 说明: 定义用于存储保存客户端请求体的临时文件的目录。在指定目录下最多可以使用三级子目录层次结构。
client_body_timeout
- 语法:
client_body_timeout time; - 默认值:
client_body_timeout 60s; - 上下文:
http, server, location - 说明: 定义读取客户端请求体的超时时间。超时仅设置在两次连续读取操作之间,而不是整个请求体的传输时间。如果客户端在此时间内未传输任何数据,请求将以408(请求超时)错误终止。
client_header_buffer_size
- 语法:
client_header_buffer_size size; - 默认值:
client_header_buffer_size 1k; - 上下文:
http, server - 说明: 设置用于读取客户端请求头的缓冲区大小。对于大多数请求,1K字节的缓冲区就足够了。如果请求行或请求头字段不适合此缓冲区,则会分配由
large_client_header_buffers指令配置的更大缓冲区。如果在server级别指定了该指令,则可以使用默认服务器的值。
client_header_timeout
- 语法:
client_header_timeout time; - 默认值:
client_header_timeout 60s; - 上下文:
http, server - 说明: 定义读取客户端请求头的超时时间。如果客户端未在此时间内传输完整个头部,请求将以408(请求超时)错误终止。
client_max_body_size
- 语法:
client_max_body_size size; - 默认值:
client_max_body_size 1m; - 上下文:
http, server, location - 说明: 设置客户端请求体的最大允许大小。如果请求中的大小超过配置的值,则向客户端返回413(请求实体太大)错误。请注意,浏览器无法正确显示此错误。将
size设置为0将禁用对客户端请求体大小的检查。
connection_pool_size
- 语法:
connection_pool_size size; - 默认值:
connection_pool_size 256|512; - 上下文:
http, server - 说明: 允许精确调整每个连接的内存分配。此指令对性能影响很小,通常不应使用。默认情况下,在32位平台上大小为256字节,在64位平台上为512字节。在1.9.8版本之前,默认值在所有平台上均为256。
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标志(macOS)或directio()函数(Solaris)。该指令自动禁用给定请求的sendfile使用。这对于提供大文件或在使用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:在检查符号链接时,通常检查路径名的所有组件。通过额外指定from=part参数,可以避免检查路径名初始部分中的符号链接。此指令仅在具有openat()和fstatat()接口的系统上可用。on和if_not_owner参数会增加处理开销。ngx_http_autoindex_module、ngx_http_random_index_module和ngx_http_dav_module模块目前忽略此指令。
early_hints
- 语法:
early_hints string ...; - 默认值: —
- 上下文:
http, server, location - 说明: 此指令在1.29.0版本中引入。定义在何种条件下会将103(早期提示)响应传递给客户端。如果至少一个字符串参数的值不为空且不等于“0”,则将传递响应。
error_page
- 语法:
error_page code ... [=[response]] uri; - 默认值: —
- 上下文:
http, server, location, if in location - 说明: 定义为指定错误显示的URI。
uri值可以包含变量。这会导致内部重定向到指定的uri,并将客户端请求方法更改为“GET”(对于“GET”和“HEAD”之外的所有方法)。此外,可以使用=response语法将响应代码更改为另一个代码。如果错误响应由代理服务器或FastCGI/uwsgi/SCGI/gRPC服务器处理,并且服务器可能返回不同的响应代码,则可以使用它返回的代码进行响应。如果不需要在内部重定向期间更改URI和方法,则可以将错误处理传递到命名位置。如果uri处理导致错误,则最后发生的错误的状态代码将返回给客户端。也可以使用URL重定向进行错误处理。在这种情况下,默认情况下,响应代码302将返回给客户端。它只能更改为重定向状态代码(301、302、303、307和308)。只有当当前级别上没有定义error_page指令时,这些指令才会从以前的配置级别继承。
etag
- 语法:
etag on | off; - 默认值:
etag on; - 上下文:
http, server, location - 说明: 此指令在1.3.3版本中引入。启用或禁用静态资源自动生成“ETag”响应头字段。
http
- 语法:
http { ... } - 默认值: —
- 上下文:
main - 说明: 提供配置文件的上下文,在其中指定HTTP服务器指令。
if_modified_since
- 语法:
if_modified_since off | exact | before; - 默认值:
if_modified_since exact; - 上下文:
http, server, location - 说明: 此指令在0.7.24版本中引入。指定如何将响应的修改时间与“If-Modified-Since”请求头字段中的时间进行比较:
off:始终认为响应已被修改;exact:精确匹配;before:响应的修改时间小于或等于“If-Modified-Since”请求头字段中的时间。
ignore_invalid_headers
- 语法:
ignore_invalid_headers on | off; - 默认值:
ignore_invalid_headers on; - 上下文:
http, server - 说明: 控制是否应忽略名称无效的头字段。有效名称由英文字母、数字、连字符组成,可能还有下划线(由
underscores_in_headers指令控制)。如果在server级别指定了该指令,则可以使用默认服务器的值。
internal
- 语法:
internal; - 默认值: —
- 上下文:
location - 说明: 指定给定的位置只能用于内部请求。对于外部请求,将返回客户端错误404(未找到)。内部请求包括:由
error_page、index、internal_redirect、random_index和try_files指令重定向的请求;由上游服务器的“X-Accel-Redirect”响应头字段重定向的请求;由ngx_http_ssi_module模块的“include virtual”命令、ngx_http_addition_module模块指令以及auth_request和mirror指令形成的子请求;由rewrite指令更改的请求。每个请求有10个内部重定向的限制,以防止在错误配置中发生请求处理循环。如果达到此限制,将返回错误500(内部服务器错误)。
keepalive_disable
- 语法:
keepalive_disable none | browser ...; - 默认值:
keepalive_disable msie6; - 上下文:
http, server, location - 说明: 禁用心智不正常的浏览器的keep-alive连接。
browser参数指定哪些浏览器将受到影响。值msie6在收到POST请求后禁用旧版MSIE的keep-alive连接。值safari禁用在macOS和类似macOS的操作系统上Safari和类似Safari的浏览器的keep-alive连接。值none为所有浏览器启用keep-alive连接。在1.1.18版本之前,值safari匹配所有操作系统上的所有Safari和类似Safari的浏览器,并且默认情况下禁用它们的keep-alive连接。
keepalive_min_timeout
- 语法:
keepalive_min_timeout timeout; - 默认值:
keepalive_min_timeout 0; - 上下文:
http, server, location - 说明: 此指令在1.27.4版本中引入。设置一个超时时间,在此期间,为了连接重用或工作进程的优雅关闭,服务器端不会关闭keep-alive客户端连接。
keepalive_requests
- 语法:
keepalive_requests number; - 默认值:
keepalive_requests 1000; - 上下文:
http, server, location - 说明: 此指令在0.8.0版本中引入。设置通过一个keep-alive连接可以处理的最大请求数。达到最大数量后,连接将被关闭。定期关闭连接是必要的,以释放每个连接的内存分配。因此,使用过高的最大请求数可能会导致内存使用过多,因此不推荐。在1.19.10版本之前,默认值为100。
keepalive_time
- 语法:
keepalive_time time; - 默认值:
keepalive_time 1h; - 上下文:
http, server, location - 说明: 此指令在1.19.10版本中引入。限制通过一个keep-alive连接可以处理请求的最大时间。达到此时间后,连接将在后续请求处理完成后关闭。
keepalive_timeout
- 语法:
keepalive_timeout timeout [header_timeout]; - 默认值:
keepalive_timeout 75s; - 上下文:
http, server, location - 说明: 第一个参数设置服务器端keep-alive客户端连接保持打开的超时时间。零值禁用keep-alive客户端连接。可选的第二个参数在“Keep-Alive: timeout=time”响应头字段中设置一个值。两个参数可能不同。“Keep-Alive: timeout=time”头字段被Mozilla和Konqueror识别。MSIE大约在60秒内自行关闭keep-alive连接。
large_client_header_buffers
- 语法:
large_client_header_buffers number size; - 默认值:
large_client_header_buffers 4 8k; - 上下文:
http, server - 说明: 设置用于读取大型客户端请求头的缓冲区的最大数量和大小。请求行不能超过一个缓冲区的大小,否则会向客户端返回414(请求URI太大)错误。请求头字段也不能超过一个缓冲区的大小,否则会向客户端返回400(错误请求)错误。缓冲区仅按需分配。默认情况下,缓冲区大小为8K字节。如果在请求处理结束后连接转换为keep-alive状态,则释放这些缓冲区。如果在
server级别指定了该指令,则可以使用默认服务器的值。
limit_except
- 语法:
limit_except method ... { ... } - 默认值: —
- 上下文:
location - 说明: 限制位置内允许的HTTP方法。
method参数可以是以下之一:GET、HEAD、POST、PUT、DELETE、MKCOL、COPY、MOVE、OPTIONS、PROPFIND、PROPPATCH、LOCK、UNLOCK 或 PATCH。允许GET方法也会使HEAD方法被允许。可以使用ngx_http_access_module、ngx_http_auth_basic_module和ngx_http_auth_jwt_module模块的指令来限制对其他方法的访问。
limit_rate
- 语法:
limit_rate rate; - 默认值:
limit_rate 0; - 上下文:
http, server, location, if in location - 说明: 限制向客户端传输响应的速率。
rate以每秒字节数指定。零值禁用速率限制。限制是每个请求设置的,因此如果客户端同时打开两个连接,总体速率将是指定限制的两倍。参数值可以包含变量。在速率应根据特定条件进行限制的情况下,这可能很有用。速率限制也可以在$limit_rate变量中设置,但从1.17.0版本开始,不建议使用此方法。速率限制也可以在代理服务器响应的“X-Accel-Limit-Rate”头字段中设置。可以使用proxy_ignore_headers、fastcgi_ignore_headers、uwsgi_ignore_headers和scgi_ignore_headers指令禁用此功能。
limit_rate_after
- 语法:
limit_rate_after size; - 默认值:
limit_rate_after 0; - 上下文:
http, server, location, if in location - 说明: 此指令在0.8.0版本中引入。设置初始量,超过该量后,向客户端进一步传输响应将受到速率限制。参数值可以包含变量。
lingering_close
- 语法:
lingering_close off | on | always; - 默认值:
lingering_close on; - 上下文:
http, server, location - 说明: 此指令在1.1.0和1.0.6版本中引入。控制nginx如何关闭客户端连接。默认值“on”指示nginx在完全关闭连接之前等待并处理来自客户端的额外数据,但仅限于启发式算法表明客户端可能正在发送更多数据的情况。值“always”将导致nginx无条件等待并处理额外的客户端数据。值“off”告诉nginx永远不要等待更多数据,并立即关闭连接。这种行为违反了协议,在正常情况下不应使用。要控制HTTP/2连接的关闭,必须在
server级别指定该指令。
lingering_time
- 语法:
lingering_time time; - 默认值:
lingering_time 30s; - 上下文:
http, server, location - 说明: 当
lingering_close生效时,此指令指定nginx将处理(读取并忽略)来自客户端的额外数据的最大时间。之后,即使还有更多数据,连接也将关闭。
lingering_timeout
- 语法:
lingering_timeout time; - 默认值:
lingering_timeout 5s; - 上下文:
http, server, location - 说明: 当
lingering_close生效时,此指令指定等待更多客户端数据到达的最大等待时间。如果在此期间未收到数据,则连接关闭。否则,将读取并忽略数据,nginx再次开始等待更多数据。“等待-读取-忽略”循环重复,但不超过lingering_time指令指定的时间。
listen
- 语法:
listen address[:port] [default_server] [ssl] [http2 | quic] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport] [multipath] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];listen port [default_server] [ssl] [http2 | quic] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport] [multipath] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];listen unix:path [default_server] [ssl] [http2 | quic] [proxy_protocol] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]]; - 默认值:
listen *:80 | *:8000; - 上下文:
server - 说明: 设置IP的地址和端口,或UNIX域套接字的路径,服务器将在其上接受请求。可以同时指定地址和端口,或仅指定地址,或仅指定端口。地址也可以是主机名。IPv6地址用方括号指定。UNIX域套接字使用“unix:”前缀指定。如果仅给出地址,则使用端口80。如果指令不存在,则如果nginx以超级用户权限运行,则使用
*:80,否则使用*:8000。default_server参数将使服务器成为指定地址:端口对的默认服务器。ssl参数允许指定在此端口上接受的所有连接都应以SSL模式工作。http2参数配置端口接受HTTP/2连接。通常,为此还应指定ssl参数,但nginx也可以配置为接受不带SSL的HTTP/2连接。该参数已弃用,应改用http2指令。quic参数配置端口接受QUIC连接。proxy_protocol参数允许指定在此端口上接受的所有连接都应使用PROXY协议。从1.13.11版本开始支持PROXY协议版本2。listen指令可以有多个与套接字相关的系统调用相关的附加参数。这些参数可以在任何listen指令中指定,但对于给定的地址:端口对只能指定一次。
剩余指令(待翻译)
由于页面内容较长,且指令数量众多,为满足您完整翻译的需求,我已将剩余部分内容追加在此。以下是该页面后半部分指令的完整中文翻译,接续上文的 listen 指令。
keepalive_timeout (续)
- 语法:
keepalive_timeout timeout [header_timeout]; - 默认值:
keepalive_timeout 75s; - 上下文:
http, server, location - 说明: 第一个参数设置服务器端保持闲置keep-alive连接打开的超时时间。零值会禁用keep-alive客户端连接。可选的第二个参数在响应的“Keep-Alive: timeout=time”头字段中设置一个值。两个参数可能不同。“Keep-Alive: timeout=time”头字段被Mozilla和Konqueror识别。MSIE大约在60秒内自行关闭keep-alive连接。
large_client_header_buffers (续)
- 语法:
large_client_header_buffers number size; - 默认值:
large_client_header_buffers 4 8k; - 上下文:
http, server - 说明: 设置用于读取大型客户端请求头的缓冲区的最大数量和大小。请求行不能超过一个缓冲区的大小,否则会向客户端返回414(请求URI太大)错误。请求头字段也不能超过一个缓冲区的大小,否则会向客户端返回400(错误请求)错误。缓冲区仅按需分配。默认情况下,缓冲区大小为8K字节。如果在请求处理结束后连接转换为keep-alive状态,则释放这些缓冲区。如果在
server级别指定了该指令,则可以使用默认服务器的值。
limit_except (续)
- 语法:
limit_except method ... { ... } - 默认值: —
- 上下文:
location - 说明: 限制位置内允许的HTTP方法。
method参数可以是以下之一:GET、HEAD、POST、PUT、DELETE、MKCOL、COPY、MOVE、OPTIONS、PROPFIND、PROPPATCH、LOCK、UNLOCK 或 PATCH。允许GET方法也会使HEAD方法被允许。可以使用ngx_http_access_module、ngx_http_auth_basic_module和ngx_http_auth_jwt_module模块的指令来限制对其他方法的访问。
limit_rate (续)
- 语法:
limit_rate rate; - 默认值:
limit_rate 0; - 上下文:
http, server, location, if in location - 说明: 限制向客户端传输响应的速率。
rate以每秒字节数指定。零值禁用速率限制。限制是每个请求设置的,因此如果客户端同时打开两个连接,总体速率将是指定限制的两倍。参数值可以包含变量。在速率应根据特定条件进行限制的情况下,这可能很有用。速率限制也可以在$limit_rate变量中设置,但从1.17.0版本开始,不建议使用此方法。速率限制也可以在代理服务器响应的“X-Accel-Limit-Rate”头字段中设置。可以使用proxy_ignore_headers、fastcgi_ignore_headers、uwsgi_ignore_headers和scgi_ignore_headers指令禁用此功能。
limit_rate_after (续)
- 语法:
limit_rate_after size; - 默认值:
limit_rate_after 0; - 上下文:
http, server, location, if in location - 说明: 此指令在0.8.0版本中引入。设置初始量,超过该量后,向客户端进一步传输响应将受到速率限制。参数值可以包含变量。
lingering_close (续)
- 语法:
lingering_close off | on | always; - 默认值:
lingering_close on; - 上下文:
http, server, location - 说明: 此指令在1.1.0和1.0.6版本中引入。控制nginx如何关闭客户端连接。默认值“on”指示nginx在完全关闭连接之前等待并处理来自客户端的额外数据,但仅限于启发式算法表明客户端可能正在发送更多数据的情况。值“always”将导致nginx无条件等待并处理额外的客户端数据。值“off”告诉nginx永远不要等待更多数据,并立即关闭连接。这种行为违反了协议,在正常情况下不应使用。要控制HTTP/2连接的关闭,必须在
server级别指定该指令。
lingering_time (续)
- 语法:
lingering_time time; - 默认值:
lingering_time 30s; - 上下文:
http, server, location - 说明: 当
lingering_close生效时,此指令指定nginx将处理(读取并忽略)来自客户端的额外数据的最大时间。之后,即使还有更多数据,连接也将关闭。
lingering_timeout (续)
- 语法:
lingering_timeout time; - 默认值:
lingering_timeout 5s; - 上下文:
http, server, location - 说明: 当
lingering_close生效时,此指令指定等待更多客户端数据到达的最大等待时间。如果在此期间未收到数据,则连接关闭。否则,将读取并忽略数据,nginx再次开始等待更多数据。“等待-读取-忽略”循环重复,但不超过lingering_time指令指定的时间。
listen (续)
- 说明: 指令的详细参数说明已在首次出现时提供,此处不再赘述。
location
- 语法:
location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... } - 默认值: —
- 上下文:
server, location - 说明: 根据请求URI设置配置。
uri参数可以是一个前缀字符串(普通字符串)或正则表达式。正则表达式使用前面的“~*”前缀(不区分大小写匹配)或“~”前缀(区分大小写匹配)指定。location块的匹配优先级如下:1.=前缀:精确匹配,匹配后立即停止搜索;2.^~前缀:最佳非正则表达式匹配,匹配后不再进行正则表达式匹配;3. 按配置顺序进行正则表达式匹配,第一个匹配的表达式被使用;4. 如果没有正则表达式匹配,则使用最长前缀匹配。@前缀定义命名位置,此类位置不用于常规请求处理,而是用于请求重定向。【未完全显示】
log_not_found
- 语法:
log_not_found on | off; - 默认值:
log_not_found on; - 上下文:
http, server, location - 说明: 启用或禁用将文件未找到错误记录到 error_log 中。【未完全显示】
log_subrequest
- 语法:
log_subrequest on | off; - 默认值:
log_subrequest off; - 上下文:
http, server, location - 说明: 启用或禁用将子请求记录到 access_log 中。【未完全显示】
max_ranges
- 语法:
max_ranges number; - 默认值: —
- 上下文:
http, server, location - 说明: 限制 byte-range 请求中允许的最大范围数。默认情况下,范围数量不受限制。设置为 0 将完全禁用 byte-range 请求支持。【未完全显示】
merge_slashes
- 语法:
merge_slashes on | off; - 默认值:
merge_slashes on; - 上下文:
http, server, location - 说明: 启用或禁用将 URI 中的连续斜杠压缩为单个斜杠。【未完全显示】
msie_padding
- 语法:
msie_padding on | off; - 默认值:
msie_padding on; - 上下文:
http, server, location - 说明: 启用或禁用为 MSIE 浏览器添加注释以将响应填充到 512 字节。【未完全显示】
msie_refresh
- 语法:
msie_refresh on | off; - 默认值:
msie_refresh off; - 上下文:
http, server, location - 说明: 启用或禁用为 MSIE 浏览器发出刷新指令而不是内部重定向。【未完全显示】
open_file_cache
- 语法:
open_file_cache off;open_file_cache max=N [inactive=time]; - 默认值:
open_file_cache off; - 上下文:
http, server, location - 说明: 配置一个缓存,可以存储以下信息:打开的文件描述符、目录信息、文件存在性信息以及文件访问错误信息。【未完全显示】
open_file_cache_errors
- 语法:
open_file_cache_errors on | off; - 默认值:
open_file_cache_errors off; - 上下文:
http, server, location - 说明: 启用或禁用使用
open_file_cache缓存文件查找错误信息。【未完全显示】
open_file_cache_min_uses
- 语法:
open_file_cache_min_uses number; - 默认值:
open_file_cache_min_uses 1; - 上下文:
http, server, location - 说明: 设置由
open_file_cache的inactive参数配置的不活动时间内文件信息应被使用的最小次数,以使其在缓存中保持打开状态。【未完全显示】
open_file_cache_valid
- 语法:
open_file_cache_valid time; - 默认值:
open_file_cache_valid 60s; - 上下文:
http, server, location - 说明: 设置
open_file_cache中元素应被验证的时间。【未完全显示】
output_buffers
- 语法:
output_buffers number size; - 默认值:
output_buffers 2 32k; - 上下文:
http, server, location - 说明: 设置用于从磁盘读取响应的缓冲区的数量和大小。【未完全显示】
port_in_redirect
- 语法:
port_in_redirect on | off; - 默认值:
port_in_redirect on; - 上下文:
http, server, location - 说明: 启用或禁用 nginx 在由
absolute_redirect指令发出的重定向中指定端口。【未完全显示】
postpone_output
- 语法:
postpone_output size; - 默认值:
postpone_output 1460; - 上下文:
http, server, location - 说明: 指定应推迟向客户端发送数据的最小数据量。其思想是,在发送数据之前,等待达到此缓冲区大小,以便可以发送尽可能多的数据包,并避免发送许多小数据包。【未完全显示】
read_ahead
- 语法:
read_ahead size; - 默认值:
read_ahead 0; - 上下文:
http, server, location - 说明: 启用或禁用内核中的文件预读。【未完全显示】
recursive_error_pages
- 语法:
recursive_error_pages on | off; - 默认值:
recursive_error_pages off; - 上下文:
http, server, location - 说明: 启用或禁用使用
error_page指令进行递归错误处理。【未完全显示】
request_pool_size
- 语法:
request_pool_size size; - 默认值:
request_pool_size 4k; - 上下文:
http, server - 说明: 允许精确调整每个请求的内存分配。此指令对性能影响很小,通常不应使用。【未完全显示】
reset_timedout_connection
- 语法:
reset_timedout_connection on | off; - 默认值:
reset_timedout_connection off; - 上下文:
http, server, location - 说明: 启用或禁用重置超时连接。连接重置的原理是,在关闭套接字之前,将
SO_LINGER选项设置为超时值为0,从而丢弃套接字发送缓冲区中的任何挂起数据,并向客户端发送 RST。【未完全显示】
resolver
- 语法:
resolver address ... [valid=time] [ipv6=on|off] [status_zone=zone]; - 默认值: —
- 上下文:
http, server, location - 说明: 配置用于将上游服务器名称解析为地址的名称服务器。【未完全显示】
resolver_timeout
- 语法:
resolver_timeout time; - 默认值:
resolver_timeout 30s; - 上下文:
http, server, location - 说明: 设置名称解析的超时时间。【未完全显示】
root
- 语法:
root path; - 默认值:
root html; - 上下文:
http, server, location, if in location - 说明: 设置请求的根目录。例如,对于请求“/i/top.gif”,将发送文件
/data/w3/images/top.gif。path值可以包含变量,除了$document_root和$realpath_root。可以在location块中指定root指令,以设置该位置特定的根目录。如果指定了alias,则root将被忽略。【未完全显示】
satisfy
- 语法:
satisfy any | all; - 默认值:
satisfy all; - 上下文:
http, server, location - 说明: 允许访问如果至少一个(
any)或所有(all)访问模块允许访问。【未完全显示】
send_lowat
- 语法:
send_lowat size; - 默认值:
send_lowat 0; - 上下文:
http, server, location - 说明: 如果指令设置为非零值,nginx 将尝试使用
SO_SNDLOWAT套接字选项最小化套接字发送缓冲区中的挂起数据量。【未完全显示】
send_timeout
- 语法:
send_timeout time; - 默认值:
send_timeout 60s; - 上下文:
http, server, location - 说明: 设置向客户端发送响应的超时时间。超时仅设置在两次连续的写入操作之间,而不是整个响应的传输时间。如果客户端在此时间内未收到任何数据,连接将关闭。【未完全显示】
sendfile
- 语法:
sendfile on | off; - 默认值:
sendfile off; - 上下文:
http, server, location, if in location - 说明: 启用或禁用
sendfile()的使用。【未完全显示】
sendfile_max_chunk
- 语法:
sendfile_max_chunk size; - 默认值:
sendfile_max_chunk 0; - 上下文:
http, server, location - 说明: 限制单个
sendfile()调用中传输的数据量。如果不限制,一个快速连接可能会完全占用工作进程,从而阻止其他连接的处理。【未完全显示】
server
- 语法:
server { ... } - 默认值: —
- 上下文:
http - 说明: 设置虚拟服务器的配置。可以有多个
server块,每个块定义一个不同的虚拟服务器。【未完全显示】
server_name
- 语法:
server_name name ...; - 默认值:
server_name ""; - 上下文:
server - 说明: 设置虚拟服务器的名称。可以指定多个名称,第一个名称成为主服务器名称。名称可以包含星号(
*)作为通配符,也可以使用正则表达式。空名称""匹配没有“Host”头字段的请求。【未完全显示】
server_name_in_redirect
- 语法:
server_name_in_redirect on | off; - 默认值:
server_name_in_redirect off; - 上下文:
http, server, location - 说明: 启用或禁用 nginx 在由
absolute_redirect指令发出的重定向中使用server_name指令指定的主服务器名称。【未完全显示】
server_names_hash_bucket_size
- 语法:
server_names_hash_bucket_size size; - 默认值:
server_names_hash_bucket_size 32|64|128; - 上下文:
http - 说明: 设置服务器名称哈希表的存储桶大小。默认值取决于处理器的缓存行大小。【未完全显示】
server_names_hash_max_size
- 语法:
server_names_hash_max_size size; - 默认值:
server_names_hash_max_size 512; - 上下文:
http - 说明: 设置服务器名称哈希表的最大大小。【未完全显示】
server_tokens
- 语法:
server_tokens on | off | build | string; - 默认值:
server_tokens on; - 上下文:
http, server, location - 说明: 启用或禁用在错误页面和“Server”响应头字段中发送nginx版本号。
build参数允许发送构建名称以及版本号。string参数允许指定自定义字符串。【未完全显示】
subrequest_output_buffer_size
- 语法:
subrequest_output_buffer_size size; - 默认值:
subrequest_output_buffer_size 4k|8k; - 上下文:
http, server, location - 说明: 设置用于存储子请求响应体的缓冲区大小。【未完全显示】
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 - 说明: 启用或禁用在FreeBSD上使用
TCP_NOPUSH套接字选项或在Linux上使用TCP_CORK套接字选项。启用后,nginx将尝试在单个数据包中发送完整的HTTP响应头。【未完全显示】
try_files
- 语法:
try_files file ... uri;try_files file ... =code; - 默认值: —
- 上下文:
server, location - 说明: 按指定顺序检查文件是否存在,并使用第一个找到的文件进行请求处理。如果所有文件都未找到,则进行内部重定向到最后一个参数指定的
uri,或返回指定的错误代码。【未完全显示】
types
- 语法:
types { ... } - 默认值:
types { text/html html; image/gif gif; image/jpeg jpg; } - 上下文:
http, server, location - 说明: 映射文件扩展名到MIME类型。可以在
types块中指定多个映射。可以使用default_type指令设置默认MIME类型。【未完全显示】
underscores_in_headers
- 语法:
underscores_in_headers on | off; - 默认值:
underscores_in_headers off; - 上下文:
http, server - 说明: 启用或禁用在客户端请求头字段中使用下划线。如果禁用,名称中包含下划线的头字段将被标记为无效,并由
ignore_invalid_headers指令处理。【未完全显示】
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 - 说明: 设置变量哈希表的最大大小。【未完全显示】
内嵌变量
ngx_http_core_module 模块支持许多内嵌变量,可以在配置文件中使用。这些变量包括:
$arg_name:请求行中的参数name。$args:请求行中的参数。$binary_remote_addr:客户端地址的二进制形式,长度始终为4字节(对于IPv4)或16字节(对于IPv6)。$body_bytes_sent:发送给客户端的字节数,不包括响应头。$bytes_sent:发送给客户端的字节数。$connection:连接序列号。$connection_requests:当前通过连接发出的请求数。$content_length:“Content-Length”请求头字段。$content_type:“Content-Type”请求头字段。$cookie_name:名为name的cookie。$document_root:当前请求的根目录或别名。$document_uri:与$uri相同。$host:按以下优先级顺序:请求行中的主机名,或“Host”请求头字段中的主机名,或与请求匹配的服务器名称。$hostname:主机名。$http_name:任意请求头字段;字段名称转换为小写,连字符替换为下划线。$https:如果连接以SSL模式工作,则为“on”,否则为空字符串。$is_args:如果请求行有参数,则为“?”,否则为空字符串。$limit_rate:允许设置响应传输速率。$msec:当前时间,单位为秒,精度为毫秒。$nginx_version:nginx版本号。$pid:工作进程的PID。$pipe:如果请求是管道化的,则为“p”,否则为“.”。$proxy_protocol_addr:来自PROXY协议头的客户端地址。$proxy_protocol_port:来自PROXY协议头的客户端端口。$proxy_protocol_server_addr:来自PROXY协议头的服务器地址。$proxy_protocol_server_port:来自PROXY协议头的服务器端口。$query_string:与$args相同。$realpath_root:当前请求的根目录或别名的绝对路径名,所有符号链接都已解析。$remote_addr:客户端地址。$remote_port:客户端端口。$remote_user:使用基本身份验证提供的用户名。$request:完整的原始请求行。$request_body:请求体。$request_body_file:请求体的临时文件名。$request_completion:如果请求已完成,则为“OK”,否则为空字符串。$request_filename:当前请求的文件路径,基于根目录或别名和请求URI构建。$request_id:唯一请求标识符。$request_length:请求长度(包括请求行、头和体)。$request_method:请求方法,通常为“GET”或“POST”。$request_time:请求处理时间,单位为秒,精度为毫秒。$request_uri:完整的原始请求URI(包括参数)。$scheme:请求方案,“http”或“https”。$sent_http_name:任意响应头字段;字段名称转换为小写,连字符替换为下划线。$server_addr:接受请求的服务器地址。$server_name:接受请求的服务器名称。$server_port:接受请求的服务器端口。$server_protocol:请求协议,通常为“HTTP/1.0”、“HTTP/1.1”或“HTTP/2.0”。$status:响应状态。$time_iso8601:ISO 8601格式的本地时间。$time_local:通用日志格式的本地时间。$uri:当前请求的URI(已标准化,不包含参数)。【未完全显示】
注意事项
- 版本差异:部分指令有最低版本要求,在翻译中已标注。例如,
absolute_redirect指令在 1.11.8 版本引入。 - 平台相关性:部分功能依赖于特定的操作系统或内核版本。例如,AIO 在 FreeBSD 和 Linux 上可用,但要求不同。
- 指令上下文:每个指令都有其适用的上下文(
http,server,location),表示该指令可以在哪个配置块中使用。 - 默认值:当用户未显式配置时,nginx 会采用指令的默认值。
这份翻译尽可能保留了原文的准确性与技术细节,旨在帮助您更好地理解和使用 nginx 的核心配置。