nginx配置文件中timeout超时时间设置(详细)

nginx配置文件中timeout超时时间设置(详细)

nginx基本的超时配置

  可以参考官网的ngx_http_core_module模块,文档地址:http://nginx.org/en/docs/http/ngx_http_core_module.html

client_header_timeout

Syntax(语法):	client_body_timeout time;
Default(默认值): client_body_timeout 60s;
Context(上下文):	http, server, location

说明:指定等待client发送一个请求头的超时时间。如果在超时时间内,client没发送任何东西,nginx返回HTTP状态码408(“Request timed out”)

client_body_timeout

Syntax(语法):	client_body_timeout time;
Default(默认值): client_body_timeout 60s;
Context(上下文): http, server, location

说明:该指令设置请求正文即请求体(request body)的读超时时间。超时仅设置为两个连续读取操作之间的时间段,而不是整个请求主体的传输。如果客户端在此时间内未传输任何内容,请求将以408(请求超时)错误终止。

keepalive_timeout (长连接类型)

Syntax(语法):	keepalive_timeout timeout [header_timeout];
Default(默认值): keepalive_timeout 75s;
Context(上下文): http, server, location

说明:第一个参数设置一个超时,在此期间保持活动的客户端连接将在服务器端保持打开状态。0则表示禁用客户端的keep-alive连接。可选的第二个参数在“Keep-Alive:timeout = time”响应头字段中设置一个值。两个参数可能不同。第二个参数,用于给浏览器进行判断是否需要关闭keepavlie连接的,如果客户端(浏览器)在header_timeout之后如果没有任何数据传输,就会主动关闭连接。Mozilla和Konqueror识别“Keep-Alive:timeout = time”标题字段。MSIE在大约60秒内自行关闭保持连接。

resolver_timeout

Syntax(语法):	resolver_timeout time;
Default(默认值): resolver_timeout 30s;
Context(上下文): http, server, location

说明:主要是指定DNS解析的超时时间,这个与resolver address ... [valid=time] [ipv6=on|off];配置相关,resolver配置可以指定DNS服务器,而这个超时时间就是用于这里配置的DNS服务器的。

send_timeout

Syntax(语法):	send_timeout time;
Default(默认值): send_timeout 60s;
Context(上下文): http, server, location

说明:设置将响应传输到客户端的超时。仅在两个连续的写操作之间设置超时,而不是为整个响应的传输。如果客户端在此时间内未收到任何内容,则会关闭连接。这个是Nginx发送数据到客户端(浏览器)的超时时间。

lingering_timeout

Syntax(语法):	lingering_timeout time;
Default(默认值): lingering_timeout 5s;
Context(上下文): http, server, location

说明:当lingering_close生效时,此指令指定更多客户端数据到达的最长等待时间。如果在此期间未收到数据,则关闭连接。否则,读取并忽略数据,并且nginx开始再次等待更多数据。重复“wait-read-ignore”循环,但不会超过lingering_time指令指定的循环。(不太理解…)

代理相关的超时配置

  可以参考官网的ngx_http_proxy_module模块,文档地址:http://nginx.org/en/docs/http/ngx_http_proxy_module.html

proxy_connect_timeout

Syntax(语法):	proxy_connect_timeout time;
Default(默认值): proxy_connect_timeout 60s;
Context(上下文): http, server, location

说明:该指令设置与upstream server的连接超时时间,有必要记住,这个超时不能超过75秒。这个时间Nginx与上游服务器尝试建立连接,如果60s内都没有建立成功,则会放弃这个连接。

proxy_read_timeout

Syntax(语法):	proxy_read_timeout time;
Default(默认值): proxy_read_timeout 60s;
Context(上下文): http, server, location

说明:定义从代理服务器读取响应的超时。仅在两个连续的读操作之间设置超时,而不是为整个响应的传输。如果代理服务器在此时间内未传输任何内容,则关闭连接。这个时间是用于读取上游服务器响应时,最长的读取等待时间,如果超过这个时间,Nginx会主动关闭连接。

proxy_send_timeout

Syntax(语法):	proxy_send_timeout time;
Default(默认值): proxy_send_timeout 60s;
Context(上下文): http, server, location

说明:设置将请求传输到代理服务器的超时。仅在两个连续的写操作之间设置超时,而不是为整个请求的传输。如果代理服务器在此时间内未收到任何内容,则关闭连接。这个是Nginx向上游服务器传输数据时的超时时间,如果发现写入时超过了这个时间都没有成功则Nginx会关闭这个链接。

总结

  Nginx的超时时间配置,一般使用默认的就可以了,但是有时候有些错误跟这些超时时间有关,不同的配置会有不同的影响。这里主要是参考官方文档,加上自己的一些理解,如有错误,请指出,共同学习。

你可能感兴趣的:(Nginx,nginx,timeout,代理超时时间,配置)