本文链接: 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的支持
- client_persistent_connections: 对客户端长连接 KeepAlive.这个参数的支持,默认是打开的.现在的客户端浏览器基本都支持的.
- server_persistent_connections: 对服务器的 KeepAlive 打开,注意哦,这个你后面的服务器一定要打开KeepAlive,不然他打开是没用的.
- persistent_request_timeout: 这个是 KeepAlive 连接超时时间.建议和后面的Web服务器一样.
- half_closed_clients : squid的TCP连接处于半关闭状态,这时候,该TCP连接的发送端已经关闭,而接收端正常工作。默认时,squid将一直保持这种处于半关闭状态的TCP连接,直到返回套接字的读写错误才将其关闭.
其它几个有关时间超时的选项
- pconn_timeout : 设置 squid 在与其他服务器和代理建立连接后,该连接闲置多长时间后被关闭.
- connect_timeout: 设置 squid 等待连接完成的超时值.
- request_timeout: 设置在建立与客户的连接后, squid 将花多长时间等待客户发出 HTTP 请求
- client_lifetime: 客户在与 squid 建立连接后,可以将该连接保持多长时间,需要修改小点。
- read_timeout:如果在指定的时间内 squid 尚未从被请求的服务器读入任何数据,则 squid 将终止该客户请求。
- shutdown_lifetime: 收到重起之关闭 squid 的信息时,对 pending 连接等侍的时间.