时间单位

本章节介绍 Nginx 配置文件中的时间单位。

时间单位

单位说明秒数适用场景
ms毫秒 (Millisecond)0.001短时间、超时
s秒 (Second)1一般时间、超时
m分 (Minute)60中等时间、超时
h时 (Hour)3600长时间、超时
d天 (Day)86400超长时间、缓存
M月 (Month, 30 days)2592000超长时间、缓存
y年 (Year, 365 days)31536000超长时间、缓存

时间单位原理: 时间单位用于指定配置指令的数值单位,如超时时间、缓存时间等。Nginx 支持多种时间单位,可以根据需求选择合适的单位。

时间单位特点

  • 不区分大小写sSmMhHdDyY 是等效的
  • 基于 60:1 分钟 = 60 秒,1 小时 = 60 分钟,1 天 = 24 小时
  • 基于 30:1 月 = 30 天
  • 基于 365:1 年 = 365 天

配置示例

keepalive_timeout 65;
proxy_connect_timeout 60s;
proxy_read_timeout 90s;
proxy_send_timeout 60s;
client_body_timeout 12m;

配置说明

  • keepalive_timeout 65:保持连接的超时时间为 65 秒
  • proxy_connect_timeout 60s:连接后端服务器的超时时间为 60 秒
  • proxy_read_timeout 90s:读取后端服务器响应的超时时间为 90 秒
  • proxy_send_timeout 60s:发送请求到后端服务器的超时时间为 60 秒
  • client_body_timeout 12m:客户端请求体的超时时间为 12 分钟

常用指令

指令说明示例
keepalive_timeout保持连接的超时时间keepalive_timeout 65
keepalive_requests每个保持连接可以处理的最大请求数keepalive_requests 100
proxy_connect_timeout连接后端服务器的超时时间proxy_connect_timeout 60s
proxy_read_timeout读取后端服务器响应的超时时间proxy_read_timeout 90s
proxy_send_timeout发送请求到后端服务器的超时时间proxy_send_timeout 60s
client_body_timeout客户端请求体的超时时间client_body_timeout 12m
client_header_timeout客户端请求头的超时时间client_header_timeout 12m
send_timeout发送响应的超时时间send_timeout 12m
expires缓存过期时间expires 7d

最佳实践

  1. 使用合适的单位:根据需求选择合适的单位
  2. 避免过大或过小:避免设置过大或过小的值
  3. 测试配置:修改配置后测试配置
  4. 监控性能:监控服务器性能,调整配置