[CDN 技术] squid是否支持http1.1和对KeepAlive支持的个人理解

Nov 6th, 2008

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/11/06/squid-keepalive.html

 squid是否支持http1.1

研究Squid蛮久了,感觉Squid是不是能实现部分http/1.1的功能一直有疑问,根据日志中见到,当你的请求经过Squid后,然后转到Web服务器时.你会发现Squid中的日志是显示使用的协议为http/1.1,但是Web服务器中的日志是显示的使用的http/1.0.

如果根据Web的日志,Squid是不支持http/1.1的,但是象(keepalive)长连接他是支持的.象Cache-Control,Host这种http.1.1的http头,他是支持的,所以我们可以得出,Squid可以实现部分的http1.1的功能.还不完美.当然不知2.7会不会好些,据讲squid2.7对http1.1做了相当多的开发.

Squid对KeepAlive的支持

  1. client_persistent_connections:  对客户端长连接 KeepAlive.这个参数的支持,默认是打开的.现在的客户端浏览器基本都支持的.
  2. server_persistent_connections:  对服务器的 KeepAlive 打开,注意哦,这个你后面的服务器一定要打开KeepAlive,不然他打开是没用的.
  3. persistent_request_timeout:  这个是 KeepAlive 连接超时时间.建议和后面的Web服务器一样.
  4. half_closed_clients :  squid的TCP连接处于半关闭状态,这时候,该TCP连接的发送端已经关闭,而接收端正常工作.默认时,squid将一直保持这种处于半关闭状态的TCP连接,直到返回套接字的读写错误才将其关闭.

其它几个有关时间超时的选项

  1. pconn_timeout : 设置 squid 在与其他服务器和代理建立连接后,该连接闲置多长时间后被关闭.
  2. connect_timeout: 设置 squid 等待连接完成的超时值.
  3. request_timeout:  设置在建立与客户的连接后, squid 将花多长时间等待客户发出 HTTP 请求
  4. client_lifetime:  客户在与 squid 建立连接后,可以将该连接保持多长时间,需要修改小点.
  5. read_timeout:如果在指定的时间内 squid 尚未从被请求的服务器读入任何数据,则 squid 将终止该客户请求.
  6. shutdown_lifetime: 收到重起之关闭 squid 的信息时,对 pending 连接等侍的时间.
     
Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. Tom Zheng
    Nov 8th, 2008 at 17:53
    Reply | Quote | #1

    squid2.7中有一个专门的参数,就是部分支持http1.1的。
    http_port 80 vhost vport http11