国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

詳解Nginx中HTTP的keepalive相關配置

2024-08-30 12:22:15
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Nginx中HTTP的keepalive相關配置,以及Nginx的Httpd守護進程相關的keepalive timeout配置,需要的朋友可以參考下

http keepalive
在http早期 ,每個http請求都要求打開一個tpc socket連接,并且使用一次之后就斷開這個tcp連接。使用keep-alive可以改善這種狀態,即在一次TCP連接中可以持續發送多份數據而不會 斷開連接。通過使用keep-alive機制,可以減少tcp連接建立次數,也意味著可以減少TIME_WAIT狀態連接,以此提高性能和提高httpd 服務器的吞吐率(更少的tcp連接意味著更少的系統內核調用,socket的accept()和close()調用)。但是,keep-alive并不是 免費的午餐,長時間的tcp連接容易導致系統資源無效占用。配置不當的keep-alive,有時比重復利用連接帶來的損失還更大。所以,正確地設置 keep-alive timeout時間非常重要。
keepalvie timeout
Httpd守護進程,一般都提供了keep-alive timeout時間設置參數。比如nginx的keepalive_timeout,和Apache的KeepAliveTimeout。這個 keepalive_timout時間值意味著:一個http產生的tcp連接在傳送完最后一個響應后,還需要hold住 keepalive_timeout秒后,才開始關閉這個連接。當httpd守護進程發送完一個響應后,理應馬上主動關閉相應的tcp連接,設置 keepalive_timeout后,httpd守護進程會想說:”再等等吧,看看瀏覽器還有沒有請求過來”,這一等,便是 keepalive_timeout時間。如果守護進程在這個等待的時間里,一直沒有收到瀏覽發過來http請求,則關閉這個http連接。
我寫了一個腳本,方便測試

<?phpsleep(60); //為了便于分析測試,會根據測試進行調整echo "www.iis7.com";?>

1.當keepalive_timeout時間為0時,即不啟用Keep-Alive時,一個tcp連接的生命周期

#tcpdump -n host 218.1.57.236 and port 80
20:36:50.792731 IP 218.1.57.236.43052 > 222.73.211.215.http: S 1520902589:1520902589(0) win 6553520:36:50.792798 IP 222.73.211.215.http > 218.1.57.236.43052: S 290378256:290378256(0) ack 1520902590 win 584020:36:50.801629 IP 218.1.57.236.43052 > 222.73.211.215.http: . ack 1 win 3276820:36:50.801838 IP 218.1.57.236.43052 > 222.73.211.215.http: P 1:797(796) ack 1 win 3276820:36:50.801843 IP 222.73.211.215.http > 218.1.57.236.43052: . ack 797 win 5920:37:50.803230 IP 222.73.211.215.http > 218.1.57.236.43052: P 1:287(286) ack 797 win 5920:37:50.803289 IP 222.73.211.215.http > 218.1.57.236.43052: F 287:287(0) ack 797 win 5920:37:50.893396 IP 218.1.57.236.43052 > 222.73.211.215.http: . ack 288 win 3262520:37:50.894249 IP 218.1.57.236.43052 > 222.73.211.215.http: F 797:797(0) ack 288 win 3262520:37:50.894252 IP 222.73.211.215.http > 218.1.57.236.43052: . ack 798 win 59

第1~3行建立tcp三次握手,建立連接。用時8898μs
第4~5行通過建立的連接發送第一個http請求,服務端確認收到請求。用時5μs
第5~6行,可以知道腳本執行用時60s1387μs,與php腳本相符。
第6、8行服務端發送http響應。發送響應用時90166μs。
第7行,表明由服務端守護進程主動關閉連接。結合第6、8行,說明http響應一旦發送完畢,服務端馬上關閉這個tcp連接
第7、9、10說明tcp連接順序關閉,用時90963μs。需要注意,這里socket資源并沒有立即釋放,需要等待2MSL時間(60s)后才被真正釋放。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平潭县| 德化县| 大厂| 定日县| 定安县| 阜宁县| 翁牛特旗| 平湖市| 义马市| 盐城市| 海淀区| 自治县| 石狮市| 遂昌县| 施秉县| 兴城市| 桂东县| 福鼎市| 翼城县| 宝应县| 库伦旗| 图木舒克市| 姚安县| 封开县| 绩溪县| 霍山县| 汉中市| 海口市| 达拉特旗| 屯门区| 文化| 锦屏县| 晴隆县| 镇赉县| 盐边县| 忻州市| 靖州| 怀宁县| 体育| 海宁市| 绥化市|