Posts

Showing posts from September, 2018

How to fix: Nginx proxy or fastcgi cache always MISS or EXPIRED

Image
I've recently had an issue with my Nginx setup: it wasn't caching or serving cached pages properly. Every time I would visit, I'd get "MISS" or "EXPIRED". What I found online is that you have to instruct Nginx to ignore browser request headers relative to caching, therefore allowing Nginx to determine whether it should serve cache, all by itself. This is done by inserting the following directive: # ignore headers to let Nginx control its own cache fastcgi_ignore_headers Cache-Control Expires; However, I already had this in my configuration and it wasn't helping. After investigating the issue, I determined that my PHP scripts were updating cookies at every request. Nginx was forced to execute the PHP scripts via FastCGI (ie. not serving them from cache) because the cookie data had changed. When PHP sets a cookie, Nginx will not hit the cache, which is normal behavior. I wouldn't recommend changing this behavior. What I di