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;
}
}
----------------------------------------------------------