5.nginx的keepalive和pipe

image

小張當上了村里的郵差刊咳,每日帶著村民的信件到nginx帝國彪见,傍晚帶著大量的回信回到村子。小張去了師傅家里娱挨,師傅聽了小張講述的已經(jīng)逐漸熟悉了的server_name匹配順序和規(guī)則余指,又從房間拿出了一些新的工具牌。nginx協(xié)議http 1.0和http 1.1是支持長連接的跷坝。http基于tcp協(xié)議之下酵镜,一次請求,需要建立tcp鏈接柴钻,而tcp鏈接是需要三次握手進行確定淮韭,結束請求需要四次交互。這種方式nginx需要耗費資源贴届,時間開銷都會影響整體速度靠粪。

而如果知道請求頭和響應體的長度蜡吧,我們是可以在在一個鏈接上執(zhí)行多個請求。如post請求占键,我們在請求頭上加上請求體body的大小用content-length表示昔善,否則返回400錯誤。請求體是確定的畔乙,響應體中body的長度:

1.http 1.0中響應頭中有content-length頭耀鸦,就是響應體body的長度,取出對應的長度的數(shù)據(jù)就可以結束了啸澡。如果nginx的響應頭沒有給出content-length頭信息袖订,那么就一直接受數(shù)據(jù),等待nginx自動結束嗅虏。

2.http 1.1中響應頭中的transfer-encoding為chunked傳輸洛姑,代表流式輸出,body體被分為幾個塊皮服,每塊的開始都會標注當前塊的長度楞艾,body不需要指定長度。非chunked傳輸時龄广,有content-length頭信息硫眯,則接受對應長度的數(shù)據(jù),沒有則等待nginx傳輸結束自動結束掉請求择同。

除了上面兩種不知道響應體長度的两入,body的長度是可以知道的。這時候敲才,我可以在請求頭中增加connection信息裹纳,當對應的值為keepalive時,代表為長連接,nginx在輸出響應體之后,并不關閉連接静袖,而是等待下一次的請求。http 1.0中connection的值默認為cloes朋鞍,而http 1.1默認keep-alive。

小張拿著師傅給的工具牌妥箕,有了這keepalive滥酥,將信件歸類之后,速度就快多了矾踱。

老王:當然恨狈,你速度也要快,nginx看到keep-alive之后呛讲,不會馬上關閉連接禾怠,但是也不可能一直等待返奉。nginx設置了keepalive鏈接屬性和一個keepalive_timeout等待時間,超出這個時間吗氏,nginx還沒有收到請求芽偏,就會關掉鏈接。keepalive_timeout也可以配置為0弦讽,這樣表示nginx不接受長連接污尉,無論請求頭是否添加了keepalive屬性。(如果有大量的請求往产,開啟長連接被碗,nginx可以減少大量的tine-wait)。

小張:那這個pipe有什么用呢仿村?

老王:這是http 1.1的屬性锐朴,pipeline是基于長連接的,目的是用一個鏈接做多次請求蔼囊。對于keepalive焚志,多個請求中第二個請求必須等待第一個請求結束,pipeline可以在第一個請求沒有結束就發(fā)起第二個請求畏鼓。(nginx支持pipeline酱酬,但是內部已然是一個一個處理,但是減少了處理完第一個請求云矫,等待第二個請求的時間)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末膳沽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泼差,更是在濱河造成了極大的恐慌贵少,老刑警劉巖呵俏,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堆缘,死亡現(xiàn)場離奇詭異,居然都是意外死亡普碎,警方通過查閱死者的電腦和手機吼肥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麻车,“玉大人缀皱,你說我怎么就攤上這事《” “怎么了啤斗?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赁咙。 經(jīng)常有香客問我钮莲,道長免钻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任崔拥,我火速辦了婚禮极舔,結果婚禮上,老公的妹妹穿的比我還像新娘链瓦。我一直安慰自己拆魏,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布慈俯。 她就那樣靜靜地躺著渤刃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贴膘。 梳的紋絲不亂的頭發(fā)上溪掀,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音步鉴,去河邊找鬼揪胃。 笑死,一個胖子當著我的面吹牛氛琢,可吹牛的內容都是我干的喊递。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼阳似,長吁一口氣:“原來是場噩夢啊……” “哼骚勘!你這毒婦竟也來了?” 一聲冷哼從身側響起撮奏,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤俏讹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后畜吊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泽疆,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年玲献,在試婚紗的時候發(fā)現(xiàn)自己被綠了殉疼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡捌年,死狀恐怖瓢娜,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情礼预,我是刑警寧澤眠砾,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站托酸,受9級特大地震影響褒颈,放射性物質發(fā)生泄漏伙单。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一哈肖、第九天 我趴在偏房一處隱蔽的房頂上張望吻育。 院中可真熱鬧,春花似錦淤井、人聲如沸布疼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽游两。三九已至,卻和暖如春漩绵,著一層夾襖步出監(jiān)牢的瞬間贱案,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工止吐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宝踪,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓碍扔,卻偏偏與公主長得像瘩燥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子不同,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容

  • nginx 作為反向代理服務器中的 keepalive 在 nginx 中, 對于 http1.0 和 http1...
    Joah_l閱讀 14,287評論 0 1
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx厉膀?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,646評論 24 1,002
  • request 在nginx中我們指的是http請求二拐,一個http請求服鹅,包含請求行、請求頭百新、請求體企软、響應行、響應頭...
    三生紙書閱讀 568評論 0 0
  • . Nginx服務的基本配置 1.1 用于調試進程和定位問題的配置項 是否以守護進程的方式運行nginx # 默認...
    Yt_cc閱讀 530評論 0 0
  • 虛擬主機與請求分發(fā) 配置監(jiān)聽端口吟孙,中括號為可選參數(shù)(server) listen address:port [ d...
    ssk258閱讀 831評論 0 0