本篇文章主要介紹了Nginx的超時(shí)timeout配置詳解衅枫,小編覺(jué)得挺不錯(cuò)的趣兄,現(xiàn)在分享給大家木羹,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
本文介紹 Nginx 的 超時(shí)(timeout)配置峰锁。分享給大家萎馅,具體如下:
Nginx 處理的每個(gè)請(qǐng)求均有相應(yīng)的超時(shí)設(shè)置。如果做好這些超時(shí)時(shí)間的限定虹蒋,判定超時(shí)后資源被釋放校坑,用來(lái)處理其他的請(qǐng)求,以此提升 Nginx 的性能千诬。
keepalive_timeout
HTTP 是一種無(wú)狀態(tài)協(xié)議耍目,客戶端向服務(wù)器發(fā)送一個(gè) TCP 請(qǐng)求,服務(wù)端響應(yīng)完畢后斷開(kāi)連接徐绑。
如果客戶端向服務(wù)器發(fā)送多個(gè)請(qǐng)求邪驮,每個(gè)請(qǐng)求都要建立各自獨(dú)立的連接以傳輸數(shù)據(jù)。
HTTP 有一個(gè) KeepAlive 模式傲茄,它告訴 webserver 在處理完一個(gè)請(qǐng)求后保持這個(gè) TCP 連接的打開(kāi)狀態(tài)毅访。若接收到來(lái)自客戶端的其它請(qǐng)求,服務(wù)端會(huì)利用這個(gè)未被關(guān)閉的連接盘榨,而不需要再建立一個(gè)連接喻粹。
KeepAlive 在一段時(shí)間內(nèi)保持打開(kāi)狀態(tài),它們會(huì)在這段時(shí)間內(nèi)占用資源草巡。占用過(guò)多就會(huì)影響性能守呜。
Nginx 使用 keepalive_timeout 來(lái)指定 KeepAlive 的超時(shí)時(shí)間(timeout)。指定每個(gè) TCP 連接最多可以保持多長(zhǎng)時(shí)間山憨。Nginx 的默認(rèn)值是 75 秒查乒,有些瀏覽器最多只保持 60 秒,所以可以設(shè)定為 60 秒郁竟。若將它設(shè)置為 0玛迄,就禁止了 keepalive 連接。
配置段: http, server, locationkeepalive_timeout 60s;
client_body_timeout
指定客戶端與服務(wù)端建立連接后發(fā)送 request body 的超時(shí)時(shí)間棚亩。如果客戶端在指定時(shí)間內(nèi)沒(méi)有發(fā)送任何內(nèi)容蓖议,Nginx 返回 HTTP 408(Request Timed Out)。
配置段: http, server, locationclient_body_timeout 20s;
client_header_timeout
客戶端向服務(wù)端發(fā)送一個(gè)完整的 request header 的超時(shí)時(shí)間讥蟆。如果客戶端在指定時(shí)間內(nèi)沒(méi)有發(fā)送一個(gè)完整的 request header勒虾,Nginx 返回 HTTP 408(Request Timed Out)。
配置段: http, server, locationclient_header_timeout 10s;
send_timeout
服務(wù)端向客戶端傳輸數(shù)據(jù)的超時(shí)時(shí)間攻询。
配置段: http, server, locationsend_timeout 30s;
客戶度連接nginx超時(shí), 建議5s內(nèi)
接收客戶端header超時(shí), 默認(rèn)60s, 如果60s內(nèi)沒(méi)有收到完整的http包頭, 返回408
Syntax: client_header_timeout time;Default: client_header_timeout 60s;Context: http, serverDefines a timeout for reading client request header. If a client does not transmit the entire header within this time, the 408 (Request Time-out) error is returned to the client.
接收客戶端body超時(shí), 默認(rèn)60s, 如果連續(xù)的60s內(nèi)沒(méi)有收到客戶端的1個(gè)字節(jié), 返回408
Syntax: client_body_timeout time;Default: client_body_timeout 60s;Context: http, server, locationDefines a timeout for reading client request body. The timeout is set only for a period between two successive read operations, not for the transmission of the whole request body. If a client does not transmit anything within this time, the 408 (Request Time-out) error is returned to the client.
keepalive時(shí)間从撼,默認(rèn)75s州弟,通常keepalive_timeout應(yīng)該比client_body_timeout大
Syntax: keepalive_timeout timeout [header_timeout];Default: keepalive_timeout 75s;Context: http, server, locationThe first parameter sets a timeout during which a keep-alive client connection will stay open on the server side. The zero value disables keep-alive client connections. The optional second parameter sets a value in the “Keep-Alive: timeout=time” response header field. Two parameters may differ.
文章來(lái)源:http://www.iis7.com/b/ssyqdq/