本篇文章主要介紹了Nginx的超時timeout配置詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本文介紹 Nginx 的 超時(timeout)配置。分享給大家,具體如下:
Nginx 處理的每個請求均有相應的超時設置。如果做好這些超時時間的限定,判定超時后資源被釋放,用來處理其他的請求,以此提升 Nginx 的性能。
keepalive_timeout
HTTP 是一種無狀態協議,客戶端向服務器發送一個 TCP 請求,服務端響應完畢后斷開連接。
如果客戶端向服務器發送多個請求,每個請求都要建立各自獨立的連接以傳輸數據。
HTTP 有一個 KeepAlive 模式,它告訴 webserver 在處理完一個請求后保持這個 TCP 連接的打開狀態。若接收到來自客戶端的其它請求,服務端會利用這個未被關閉的連接,而不需要再建立一個連接。
KeepAlive 在一段時間內保持打開狀態,它們會在這段時間內占用資源。占用過多就會影響性能。
Nginx 使用 keepalive_timeout 來指定 KeepAlive 的超時時間(timeout)。指定每個 TCP 連接最多可以保持多長時間。Nginx 的默認值是 75 秒,有些瀏覽器最多只保持 60 秒,所以可以設定為 60 秒。若將它設置為 0,就禁止了 keepalive 連接。
配置段: http, server, locationkeepalive_timeout 60s;
client_body_timeout
指定客戶端與服務端建立連接后發送 request body 的超時時間。如果客戶端在指定時間內沒有發送任何內容,Nginx 返回 HTTP 408(Request Timed Out)。
配置段: http, server, locationclient_body_timeout 20s;
client_header_timeout
客戶端向服務端發送一個完整的 request header 的超時時間。如果客戶端在指定時間內沒有發送一個完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。
配置段: http, server, locationclient_header_timeout 10s;
send_timeout
服務端向客戶端傳輸數據的超時時間。
配置段: http, server, locationsend_timeout 30s;
客戶度連接nginx超時, 建議5s內
接收客戶端header超時, 默認60s, 如果60s內沒有收到完整的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超時, 默認60s, 如果連續的60s內沒有收到客戶端的1個字節, 返回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時間,默認75s,通常keepalive_timeout應該比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.
文章來源:http://www.iis7.com/b/ssyqdq/