FRiCKLE Labs & yo.se pres. ngx_cache_purge

ahu nginx-forum at nginx.us
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:

http://myserver.com/purge/test.php
OR 
http://myserver.com/purge/myserver.com/test.php

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
inactive=5m;
   	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;
		server_name myserver.com;
		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(/.*) {
			#allow 127.0.0.1;
			#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" '
             	                '"$http_user_agent"
$http_x_forwarded_for';
		access_log /home/wwwlogs/access.log access;
	}
	
}
----------------------------------------------------------

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,39564,216317#msg-216317



More information about the nginx mailing list