[squid-users] Proxy Server closes the connection to http server before transferring all application data to http client

Alex Rousskov rousskov at measurement-factory.com
Tue Dec 15 15:52:59 UTC 2020


On 12/15/20 2:52 AM, Zhang, Lily (USD) wrote:

> Looks we can use "Connection: keep-alive" in http request to solve this issue.

That client request header will not change Squid's reaction to
Squid-server connection closure by the server. It also should not change
the request that Squid sends to the server (if it does, it is a Squid
bug). In HTTP proxying, client-Squid and Squid-server
connections/negotiations are mostly independent.

If changing the client to send Connection:keep-alive to Squid fixes your
problem, then the problem was most likely unrelated to the behavior you
asked about earlier.

If you can configure the HTTP server to keep the connection
open/persistent after delivering the response (and, hence, to send a
Connection:keep-alive _response_ header or otherwise signal HTTP
connection persistency), then, yes, Squid may pool that _open_
Squid-server connection for future reuse (again, regardless of what
headers the HTTP client is using).

Alex.



> -----Original Message-----
> From: squid-users <squid-users-bounces at lists.squid-cache.org> On Behalf Of Amos Jeffries
> Sent: Tuesday, December 15, 2020 3:47 PM
> To: squid-users at lists.squid-cache.org
> Subject: Re: [squid-users] Proxy Server closes the connection to http server before transferring all application data to http client
> 
> 
> [EXTERNAL EMAIL] 
> 
> On 15/12/20 4:21 pm, Zhang, Lily (USD) wrote:
>> Hi
>>
>> I installed 4.13 squid proxy server. See attachment, http server
>> (10.250.16.46) sends FIN, ACK to tells that response is finished.  
>> Proxy server (10.244.102.133) sends FIN, ACK back to http server
>> (10.250.16.46) before "Application Data" is transferred to http client 
>> (10.245.166.20).
>>
>> Would you please help me on questions below:
>>
>>  1. Is it normal that proxy server sends FIN, ACK to http server before
>>     http client finishes receiving  all the “Application Data” ?
> 
> That depends on the transaction which is being performed.
> 
> If it is a normal HTTP request-response transaction then yes. Once Squid has the response the server connection is done with - it may be closed or re-used for other transactions.
> 
> If it is a tunnel containing non-HTTP traffic then no. Squid should only close the server connection when the client closes its end of the tunnel.
> 
> Also, note that FIN+ACK in a single packet is a *response* to a FIN having come from the server itself. Not initiated by the proxy.
> 
> 
> 
>>  2. Does proxy server have option to stop item 1?
>>
> 
> In general: No. This is something that is supposed to happen (or not) 
> according to the relevant protocol requirements.
> 
> In specific, there may be some options that can be configured to change 
> how the protocol behaves. Preventing it needing a close. You will have 
> to find out what the cause actually is to determine where to look for 
> solutions.
> 
> 
> Amos
> 
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users
> 



More information about the squid-users mailing list