How does nginx cache work ?

Zhang Chao zchao1995 at
Thu Sep 7 08:51:48 UTC 2017


according to the function ngx_http_upstream_cache, I think nginx never load
the file to memory, instead, it just set a buf, which file is referenced to
this file and output it.

On 7 September 2017 at 16:31:46, ujaeek at (ujaeek at


Currently we are modify some nginx proxy cache functions, and I would like
to know how nginx cache work?

1. does nginx cache data in memory or read from disk everytime?

for example, first I do `GET /example.jpg`, nginx will cache it and save to
next time I do `GET /example.jpg`, does nginx read the file from disk then
send to client,
or nginx just send the file from memory to client because nginx has cached
it in memory ?

2. if nginx save it in memory, what happens if the file is 1GB?

does nginx malloc a 1GB memory and save the file? or split the file into
many parts, and save it separately using
something like array or linked list?

nginx-devel mailing list
nginx-devel at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx-devel mailing list