最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx中keepalive配置詳解

 更新時間:2023年08月28日 14:28:03   作者:恒者走天下  
keepalive是長連接的意思,本文主要介紹了nginx中keepalive配置詳解,具有一定的參考價值,感興趣的可以了解一下

一、keepalive理解

什么是keepalive

keepalive是長連接的意思??蛻舳税l(fā)起http請求前需要先與服務(wù)端建立TCP連接,每次TCP連接都需要三次握手來確定,三次交互不僅會增加消費時間,還會增加網(wǎng)絡(luò)流量。http請求是請求應(yīng)答式,如果能知道每個請求頭與響應(yīng)體的長度,就可以在一個連接上執(zhí)行多個請求,這個就是所謂的長連接。

(注意:keepalive是tcp層長連接探活機(jī)制;keep-alive是應(yīng)用層http協(xié)議使用,在其頭部Connection字段中的一個值,只是代表客戶端與服務(wù)之間需要保持長連接,可以理解為通過此字段來告訴nginx此連接需要維持長連接,處理完別直接關(guān)閉連接。)

如何確定請求頭和響應(yīng)體的長度?

1、請求頭長度: 如果當(dāng)前請求有body,Nginx需要客戶端在請求頭中指定content-length來表明body的大小,否則返回400。
2、響應(yīng)體長度: 在http協(xié)議中響應(yīng)body長度的確定

  • http1.0:①響應(yīng)頭中有content-length,content-length即為body長度??头艘勒者@個長度接收數(shù)據(jù),接收完了就表示請求完成。②響應(yīng)頭中沒有content-length,客戶端會一直接收數(shù)據(jù),知道服務(wù)端主動斷開,才表示body接收完了。
  • http1.1:①chunked傳輸,響應(yīng)頭中有Transfer-encoding,body為流式輸出,body被分成多個塊,每塊的開始會標(biāo)識出當(dāng)前塊的長度,此時body不需要通過長度指定。②非chunked傳輸,響應(yīng)頭中有content-length則按照content-length來接收數(shù)據(jù),沒有content-length,則客戶端接收數(shù)據(jù),知道服務(wù)器主動斷開。

是否可使用長連接的條件是什么?

可知響應(yīng)體長度的情況下,當(dāng)服務(wù)器輸出完body后可以考慮使用長連接。長連接的條件限制如下:

  • 客服端的請求頭中的connection為close,則客戶端要求不使用長連接。
  • 客戶端的請求頭中的connection為keep-alive,則客戶端要求使用長連接。
  • 客戶端的請求頭中沒有connection這個頭,如果是http1.0協(xié)議默認(rèn)為close,如果是http1.1協(xié)議默認(rèn)為keep-alive。

keepalive時Nginx的等待時長是多少?

長連接時,Nginx在輸出完響應(yīng)體后,會設(shè)置當(dāng)前連接的keepalive屬性,然后等待客戶端的下一次請求,同時也設(shè)置了一個最大等待時間,這個時間通過keepalive_timeout來配置,如果是0,則表示關(guān)掉長連接,此時不管客戶端的connection值是什么都會強制設(shè)為close。

keepalive的優(yōu)勢是什么?

服務(wù)端確定是keepalive打開時,在響應(yīng)的http頭中也會有connection=Keep-Alive,否則為Close。如果connection值為colse,Nginx在響應(yīng)完數(shù)據(jù)后就會關(guān)掉連接。所以對于請求量較大的Nginx來說,關(guān)掉keepalive最后會產(chǎn)生較多的time-wait狀態(tài)的socket。當(dāng)客戶端的一次訪問需要多次訪問同一個server時,keepalive會大量減少time-wait的數(shù)量。

二、nginx的keepalive配置

nginx保持keepalive需做那些事情

  • client到nginx的連接是長連接
  • nginx到server的連接是長連接

nginx的文件配置

(1)配置TCP層keepalive探活機(jī)制的三個參數(shù):

#情況1:
http {
server {
    listen 127.0.0.1:3306 so_keepalive=on;#開啟keepalive探活,探測策略走系統(tǒng)默認(rèn)
    }
}
#情況2:
http {
server {
    listen 127.0.0.1:3306 so_keepalive=7m:75s:9;#把空閑時長從系統(tǒng)默認(rèn)的5分鐘改為了7分鐘
    }
}

其中so_keepalive有如下選擇配置:

so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]
*   on: 開啟,探測參數(shù)更加系統(tǒng)默認(rèn)值
*   off: 關(guān)閉
*   keepidle: 連接空閑等待時間 
*   keepintvl: 發(fā)送探測報文間隔時間
*   keepcent: 探測報文重試次數(shù)

如果nginx未設(shè)置so_keepalive配置,則走系統(tǒng)默認(rèn)的探活策略

(2)nginx與客戶端(一般為瀏覽器、APP等)保持的長連接進(jìn)行限制管理:

http {
    keepalive_timeout  120s 120s;
    keepalive_requests 100;
}
keepalive_timeout timeout [header_timeout];

第一個參數(shù):客戶端連接在服務(wù)器端空閑狀態(tài)下保持的超時值(默認(rèn)75s);值為0會禁用keep-alive,也就是說默認(rèn)不啟用長連接;第二個參數(shù):響應(yīng)的header域中設(shè)置“Keep-Alive: timeout=time”;告知瀏覽器對長連接的維持時間;官網(wǎng)介紹如下

keepalive_requests number;

keepalive_requests:默認(rèn)100,某個長連接連續(xù)處理請求次數(shù)限制,超過次數(shù)則該長連接被關(guān)閉;如果需要釋放某個連接占用的內(nèi)存,必須關(guān)閉該鏈接,內(nèi)存不大的情況下,不建議開大該配置;在QPS較高的場景,則有必要加大這個參數(shù);

(3)nginx與上游server保持長連接

http {
    upstream  BACKEND {
        server 127.0.0.1:8000;
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
        keepalive 300; //空閑連接數(shù)   
        keepalive_timeout  120s;//與上游空閑時間
        keepalive_requests 100;//與上游請求處理最大次數(shù)
    }
    server{
        listen 8080;
        location /{
            proxy_pass http://BACKEND;
            proxy_http_version 1.1;
            proxu_set_header Connection "";
        }
    }
}

keepalive:限制nginx某個worker最多空閑連接數(shù),此處不會限制worker與上游服務(wù)長連接的總數(shù);
keepalive_timeout:nginx與上游長連接最大空閑時間,默認(rèn)值為60s;
keepalive_requests:nginx與上游長連接最大交互請求的次數(shù),默認(rèn)值為100;

三、應(yīng)用場景

什么時候使用?

明顯的預(yù)知用戶會在當(dāng)前連接上有下一步操作
復(fù)用連接,有效減少握手次數(shù),尤其是https建立一次連接開銷會更大

什么時候不用?

訪問內(nèi)聯(lián)資源一般用緩存,不需要keepalive
長時間的tcp連接容易導(dǎo)致系統(tǒng)資源無效占用

到此這篇關(guān)于nginx中keepalive配置詳解的文章就介紹到這了,更多相關(guān)nginx keepalive配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx服務(wù)器安裝及配置文件與使用詳解

    Nginx服務(wù)器安裝及配置文件與使用詳解

    這篇文章主要介紹了Nginx服務(wù)器安裝及配置文件與使用詳解 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • nginx多https證書配置實現(xiàn)

    nginx多https證書配置實現(xiàn)

    本文主要介紹了nginx多https證書配置實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • CentOS如何用nginx搭建文件下載服務(wù)器

    CentOS如何用nginx搭建文件下載服務(wù)器

    Nginx 是開源、高性能、高可靠的 Web 和反向代理服務(wù)器,而且支持熱部署,幾乎可以做到 7 * 24 小時不間斷運行,即使運行幾個月也不需要重新啟動,這篇文章主要介紹了CentOS用nginx搭建文件下載服務(wù)器,需要的朋友可以參考下
    2023-11-11
  • nginx關(guān)閉favicon.ico、robots.txt日志記錄配置

    nginx關(guān)閉favicon.ico、robots.txt日志記錄配置

    這篇文章主要介紹了nginx關(guān)閉favicon.ico、robots.txt日志記錄配置,同時提供了不允許訪問某些隱藏文件的配置方法,需要的朋友可以參考下
    2014-05-05
  • prometheus監(jiān)控nginx的實現(xiàn)

    prometheus監(jiān)控nginx的實現(xiàn)

    這篇文章主要介紹了prometheus監(jiān)控nginx的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Nginx的流式響應(yīng)配置實現(xiàn)小結(jié)

    Nginx的流式響應(yīng)配置實現(xiàn)小結(jié)

    nginx是一款自由的、開源的、高性能的HTTP服務(wù)器和反向代理服務(wù)器,本文主要介紹了Nginx的流式響應(yīng)配置實現(xiàn)小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • Nginx 配置 ModSecurity 網(wǎng)絡(luò)應(yīng)用防火墻實現(xiàn)

    Nginx 配置 ModSecurity 網(wǎng)絡(luò)應(yīng)用防火墻實現(xiàn)

    這篇文章主要介紹了Nginx 配置 ModSecurity 網(wǎng)絡(luò)應(yīng)用防火墻實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • nginx配置location總結(jié)location正則寫法及rewrite規(guī)則寫法

    nginx配置location總結(jié)location正則寫法及rewrite規(guī)則寫法

    本文詳細(xì)講述了Nginx location正則寫法,Nginx 的Rewrite規(guī)則以及Nginx.conf中if指令與全局變量
    2018-10-10
  • nginx設(shè)置攔截請求的幾種方法

    nginx設(shè)置攔截請求的幾種方法

    本文主要介紹了nginx設(shè)置攔截請求的幾種方法
    2024-05-05
  • Nginx 請求壓縮的實現(xiàn)(動態(tài)壓縮,靜態(tài)壓縮)

    Nginx 請求壓縮的實現(xiàn)(動態(tài)壓縮,靜態(tài)壓縮)

    本文主要介紹了Nginx 請求壓縮的實現(xiàn)(動態(tài)壓縮,靜態(tài)壓縮),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

康乐县| 博客| 营山县| 古交市| 镇赉县| 铜陵市| 瓦房店市| 稷山县| 固始县| 方城县| 梨树县| 宜州市| 平陆县| 淮滨县| 太康县| 阿坝县| 吐鲁番市| 尚义县| 房山区| 曲水县| 威远县| 连平县| 连城县| 乌拉特后旗| 元江| 广平县| 富锦市| 湘西| 沈阳市| 谢通门县| 舒兰市| 文安县| 沙坪坝区| 平南县| 珠海市| 饶平县| 韶山市| 宜丰县| 石林| 巢湖市| 清河县|