It happens in my Wordpress and nginx configuration but IMO it's browser/HTTP related problem.
Everything is about one page, that appears in two versions, for logged in user and anonymous user. Scenario:
- Wordpress is serving user page that should be cached (HTTP 200)
- Wordpress is serving, for logged in user, a page that should NOT be cached (HTTP 200 with no cache header).
- After logging out, I want user to receive page no 1, but he is getting page no 2 from browser cache. Nginx is sending HTTP 304, so the browser should take last cached page from browser memory or from the server. But it's not happening.
These are HTTP headers for above cases: http://pastebin.com/nJAxLQSq