Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Since enabling the fastcgi_cache on my nginx server, my php-enabled custom error page has suddenly stopped working and I'm getting the internal 404 message instead.

In nginx.conf:

fastcgi_cache_path /var/lib/nginx/fastcgicache levels=1:2 
keys_zone=MYCACHE:5m inactive=2h max_size=1g loader_files=1000
map $http_cookie $no_cache { default 0; ~SESS 1; }
fastcgi_cache_key "$scheme$request_method$host$request_uri";
add_header X-My-Cache $upstream_cache_status;

map $uri $no_cache_dirs {
   default 0;
   ~^/(?:phpMyAdmin|rather|poll|webmail|skewed|blogs|galleries|pixcache) 1;

the cache relevant stuff in my fastcgi.conf:

fastcgi_cache MYCACHE;
fastcgi_keep_conn on;
fastcgi_cache_bypass $no_cache $no_cache_dirs;
fastcgi_no_cache $no_cache $no_cache_dirs;
fastcgi_cache_valid 200 301 5m;
fastcgi_cache_valid 302 5m;
fastcgi_cache_valid 404 1m;
fastcgi_cache_use_stale error timeout invalid_header updating http_500;
fastcgi_ignore_headers Cache-Control Expires;
expires epoch;
fastcgi_cache_lock on;

If I disable the fastcgi_cache, the php-enabled 404 page works as it has for years.

How would I disable the cache for the custom error page?

share|improve this question
just rec'd an email fron Nginx's Igor...will update shortly. – Ian Oct 9 '12 at 8:43

Two suggestions from nginx's Igor:

The issue is in fastcgi_cache_key: fastcgi_cache_key "$scheme$request_method$host$request_uri";

It always uses client original $request_uri. Try: fastcgi_cache_key "$scheme$request_method$host$uri?$args";

making that change got me back to the custom 404, but a cached version. Adding the following location fixed that:

location = /dhe404.shtml {
fastcgi_cache  off;
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.