nginx優化: timeout超時配置


一,為什么要做連接超時設置?

nginx在保持着與客戶端的連接時,要消耗cpu/內存/網絡等資源,

如果能在超出一定時間后自動斷開連接,

則可以及時釋放資源,起到優化性能、提高效率的作用

 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,keepalive的超時時長:keepalive_timeout 

1,keepalive的作用:

HTTP 的 KeepAlive 模式:

webserver 在處理完一個請求后保持這個 TCP 連接的狀態仍然是打開。

如果再次接收到來自此客戶端的其它請求,

服務端會使用這個未關閉的連接,而不是再新建一個連接

 

2,keepalive的配置:

keepalive_timeout  60 45;

兩個參數分別是:

nginx服務的超時時間(默認值是75s,建議設置為60秒)

nginx在給瀏覽器的響應header信息中的超時時間

注意,第二個參數設置之后才會在瀏覽器端出現keepalive一項:

如圖:

 

3,nginx給header的超時信息並不是肯定會得到瀏覽器的執行

 

4,keepalive_timeout的值應該大於client_body_timeout

 

三,客戶端header的超時時長:client_header_timeout

client_header_timeout         15s;

默認值是60s

客戶端向服務端發送一個完整的 request header 的超時時間

如果60s內沒有收到完整的http request header,則為超時

如果客戶端超時,Nginx 返回 HTTP 408(Request Timed Out)。

 

四,客戶端body的超時時長:client_body_timeout

client_body_timeout            15s;

默認值是60s

客戶端向服務端發送 request body 的超時時間

如果連續的60s內沒有收到客戶端的1個字節,則表示超時

如果客戶端超時,Nginx 返回 HTTP 408(Request Timed Out)。

 

五,向客戶端發送數據超時時長:send_timeout

send_timeout                  15s;

默認值是60s

send_timeout 指定客戶端的響應超時時間。

這個設置指的是在這段時間內,客戶端沒有讀取任何數據,nginx就會關閉連接.

 

六,如果有大文件上傳時需配置哪個指定?

有大文件上傳時,需要指定body的最大值

client_max_body_size          50m;

這個指定的默認值是1M,基本上不可能滿足使用需求

如果需要上傳較大的文件,在這里指定一個最大值

這里指定文件最大是50MB

 

七,查看nginx的版本:

[root@centos8 conf.d]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v
nginx version: nginx/1.18.0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM