HTTP服务的Keep-Alive设置问题
和apache一样,很多http服务都提供了Keep-Alive功能,如nginx配置中的keepalive_timeout。
至于什么是Keep-Alive,简单的说:
Keep-Alive会在server上保持client过来所建立的链接,当client下一次再连到这台server时,不需要重新建立链接,而继续使用之前的链接。
具体这里不再介绍,可自行google。这里直接说一下Keep-Alive该如何设置的问题。
因为它会保持打开的链接,所以适用于同一client短时间内需要反复链接的web情况,例如:
所以要让通信完毕的链接尽快释放,给其他client腾出资源。
虽然这样频繁地建立链接会消耗一定的CPU和内存,但是以现在机器的性能,前端服务器的瓶颈往往不在这块儿,而在链接数和I/O等。
所以,通常情况下web服务器你大可不必开启Keep-Alive,或者设置较低的值。这样可以充分发挥机器性能,提高并发。除非你的CPU和内存比较紧张。
此外,后端server和server之间的通信如果使用的也是http,那么此时应该开启Keep-Alive,你说是么:)
-----------------------------------------我是分割线----------------------------------------------
扩展阅读:
http://blog.netzhou.net/?p=141
http://mylinux.5d6d.net/thread-919-1-1.html