FRiCKLE Labs & pres. ngx_cache_purge

ahu nginx-forum at
Thu Oct 6 14:11:56 UTC 2011

I need some help on "FASTCGI(PHP) CACHE PURGE".

I successfully configured my nginx to support purge fastcgi cache with
Ctrl+F5,while I found that I can not purge the cache by request a uri
like below:

It always returns a 404 error :(

HOW CAN I DO IT? Please help me~

Here is the key part of my nginx.conf:

http {
	include mime.types;
	default_type application/octet-stream;


	fastcgi_cache_path /tmp/fastcgi_cache levels=1:2 keys_zone=TEST:10m
   	fastcgi_connect_timeout 300;
   	fastcgi_send_timeout 300;
   	fastcgi_read_timeout 300;
   	fastcgi_buffer_size 16k;
   	fastcgi_buffers 16 16k;
   	fastcgi_busy_buffers_size 16k;
   	fastcgi_temp_file_write_size 16k;
   	fastcgi_cache TEST;
   	fastcgi_cache_valid 200 302 1h;
   	fastcgi_cache_valid 301 1d;
   	fastcgi_cache_valid any 1m;
   	fastcgi_cache_min_uses 1;
   	fastcgi_cache_use_stale error timeout invalid_header http_500;
	fastcgi_cache_key $host$uri$is_args$args;				

	server {
		listen 80;
		root /home/wwwroot;
		index index.html index.htm index.php;

		if ($request_method = 'PURGE') {   
			rewrite ^(.*)$ /purge$1 last;   

		if ($http_cache_control ~ "no-cache") {   
			set $http_cache_control 'max-age=604800';   
			rewrite ^(.*)$ /purge$1 last;   

		location ~ /purge(/.*) {
			#deny all;
		                fastcgi_cache_purge TEST $host$1$is_args$args;

		location ~ .*\.(php|php5)?$ {
			fastcgi_pass unix:/tmp/php-cgi.sock;
			fastcgi_index index.php;
			fastcgi_split_path_info ^(.+\.php)(.*)$;
			include fcgi.conf;


		log_format access '$remote_addr - $remote_user [$time_local]
"$request" '
          		'$status $body_bytes_sent "$http_referer" '
		access_log /home/wwwlogs/access.log access;

Posted at Nginx Forum:,39564,216317#msg-216317

More information about the nginx mailing list