proxy_cache_background_update leads to 200 ms delay

Lucas Rolff lucas at
Sat Jul 7 14:42:13 UTC 2018

It's not a combination of tcp_nopush and proxy_cache_background_update that creates this delay.

tcp_nopush (TCP_CORK in Linux) introduces a delay of packets being sent for up to 200ms or until the packet size gets to the defined MTU.

proxy_cache_background_update (if I remember correctly), will do the common checks at the origin to check if a file changed, since this request performed is (often) less than the MTU, you'll end up having to wait for the 200ms delay.

So disabling tcp_nopush also disables the 200ms delay.

On 07/07/2018, 14.15, "nginx on behalf of stephan13360" <nginx-bounces at on behalf of nginx-forum at> wrote:

    Wow, thats it! The delay is gone.
    For now I am satisfied that the delay is gone and will read up some more on
    For the future: Is there any information on why the combination of
    tcp_nopush and proxy_cache_background_update create the delay and not the
    STALE response you get when the backend ist down and
    proxy_cache_background_update is off?
    Posted at Nginx Forum:,280434,280444#msg-280444
    nginx mailing list
    nginx at

More information about the nginx mailing list