和apache一樣,很多http服務都提供了Keep-Alive功能,如nginx配置中的keepalive_timeout。
至於什麼是Keep-Alive,簡單的說:
Keep-Alive會在server上保持client過來所建立的鏈接,當client下一次再連到這臺server時,不需要重新建立鏈接,而繼續使用之前的鏈接。
具體這裏不再介紹,可自行google。這裏直接說一下Keep-Alive該如何設置的問題。
因爲它會保持打開的鏈接,所以適用於同一client短時間內需要反覆鏈接的web情況,例如:
- 打開一個頁面時,該頁面鏈接了n個圖片或n個js腳本或n個css等,並且這些東西都在一臺server上;
- 需要用戶頻繁的在網站中轉悠,這點點那點點;
所以要讓通信完畢的鏈接儘快釋放,給其他client騰出資源。
雖然這樣頻繁地建立鏈接會消耗一定的CPU和內存,但是以現在機器的性能,前端服務器的瓶頸往往不在這塊兒,而在鏈接數和I/O等。
所以,通常情況下web服務器你大可不必開啓Keep-Alive,或者設置較低的值。這樣可以充分發揮機器性能,提高併發。除非你的CPU和內存比較緊張。
此外,後端server和server之間的通信如果使用的也是http,那麼此時應該開啓Keep-Alive,你說是麼:)
-----------------------------------------我是分割線----------------------------------------------
擴展閱讀: