Maxim Dounin Wrote:
> nginx needs a client request to be able to request a
> resource from a backend and to save it to the cache.
I'm afraid my explanation wasn't clear enough.
There's no need to make nginx able to make requests to fastcgi on it's own initiative.
How it works today:
A client makes a request. Nginx sees the cache has expired and issues a request to fastcgi. It takes some time and client is patiently *waiting*. Finally, after nginx gets a response from fastcgi app, it stores it in cache and sends it to the client.
How it can be improved:
A client makes a request. Nginx sees the cache has expired and issues a request to fastcgi. But nginx doesn't wait for fastcgi response, and *immediately* responds to the client with *stale* cache contents (if it exists). Client is like "whoa, that was fast!". And later, eventually, nginx gets a response from fastcgi app and updates cache.