Thank you for your reply.
I mean everything is ok before I limited .jpg and .gif to be cached.
So I didn't write all configurations here.
Then, I give the full version before and current for you to help me.
# Version Ok
# I visited http://www.test.com/1.gif,
# and purge it by visiting, http://www.test.com/purge/1.gif
# It's ok, show: Successful purge ...
##########################################################
server {
server_name www.test.com;
listen 80;
location / {
proxy_cache cache1;
proxy_cache_valid 200 304 15m;
proxy_cache_key $host$uri$is_args$args;
proxy_pass http://backend;
}
location ~ .*\.(php)?$
{
proxy_pass http://backend;
}
location ~ /purge(/.*)
{
proxy_cache_purge cache1 $host$1$is_args$args;
}
}
# Version not ok
# This can't be purged, show: 404
# and I'm sure I visited http://www.test.com/1.gif again before I purge.
# It's in cache indeed, because I can see the picture in my browser (with F5, and Ctrl+F5) even after I delete 1.gif from that server.
########################################################
server {
server_name www.test.com;
listen 80;
access_log logs/proxy.log;
location ~ .*\.(jpg|gif)$ { # I want only jpg/gif to be cached
proxy_cache cache1;
proxy_cache_valid 200 304 15m;
proxy_cache_key $host$uri$is_args$args;
proxy_pass http://backend;
}
location / # All others not cached
{
proxy_pass http://backend;
}
location ~ /purge(/.*)
{
proxy_cache_purge cache1 $host$1$is_args$args;
}
}
Thank you, I thought you can repeat this problem easily.