[squid-users] Cache Peer Connection

Alex Rousskov rousskov at measurement-factory.com
Wed Apr 20 15:16:11 UTC 2022


On 4/20/22 09:06, Amos Jeffries wrote:
> On 21/04/22 00:24, Garbacik, Joe wrote:
>> When squid connects to an upstream cache peer, does it create a new
>> tcp session between the peers for each request from a client on the
>> original squid server or does it maintain the session between the
>> peers for a period of time to allow other requests via the
>> established session?

> The answer to your questions depend on a lot of things...
> 
> Squid supports HTTP persistence and pipeline to both clients and peers 
> independently by default. For details on how those work see
>   https://datatracker.ietf.org/doc/html/rfc7230#section-6.3
>   https://datatracker.ietf.org/doc/html/rfc7230#section-6.3.2

Clarification: Squid does _not_ support HTTP request pipelining on 
Squid-to-server connections -- at most one concurrent HTTP request may 
be using a given Squid-to-server connection. By default, Squid also does 
not pipeline HTTP requests on client-to-Squid connections (the 
pipeline_prefetch directive controls that behavior).


> Specifically, use of the features requires that;
>   * the peer also supports them, and
>   * your squid.conf has not disabled them, and
>   * your squid.conf has not enabled features that require them to be 
> disabled, and
>   * the traffic has not forbidden them, and
>   * the the messages going through allow them.



In summary, yes, Squid will reuse an idle persistent HTTP connection to 
an origin server or cache_peer in order to forward a request received 
from another client _if_ various factors (see Amos' list) do not 
prohibit such reuse (and persistency itself).


HTH,

Alex.


More information about the squid-users mailing list