Nginx的超時timeout配置詳解

本篇文章主要介紹了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/

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容