用户工具

站点工具


docs:ingress:nginx:m1_01_ngx_cache_purge

ngx_cache_purge

是 nginx 模块,此模块可以清理 nginx 的 FastCGI、proxy、 SCGI 和 uWSGI 的缓存。

配置指令(相同位置语法)

fastcgi_cache_purge
syntax: fastcgi_cache_purge on|off|<method> [from all|<ip> [.. <ip>]]
default: none
context: http, server, location

允许从代理缓存中清除所选页面。

使用

配置nginx.conf文件

在已经配置好的server外加入以下内容:

#cache begin
  proxy_buffering on;
  proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=my-cache:150m max_size=300m inactive=1d;
  proxy_temp_path /usr/local/nginx/nginx_temp;
  proxy_buffer_size 16k;
  proxy_buffers 4 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
  #cache end

  重要参数说明:proxy_cache_path/usr/local/nginx/cache缓存的文件目录,

  levels=1:2表示缓存文件两级目录,1表示第一级目录名为1位数,2表示第二级目录名为2位数

  keys_zone=my-cache:150m max_size=300m inactive=1d缓存区域名字,分配150m空间,最大缓存300m,有效期1天

在已经配置好的server内加入以下内容:  

location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
                proxy_set_header       Host $host;
                proxy_pass      http://101.118.11.20:9090;
                proxy_redirect http:// $scheme://;
                add_header X-Cache $upstream_cache_status;
                proxy_cache my-cache;#对应前边的keys_zone=my-cache
                proxy_cache_valid 200 12h;
                proxy_cache_valid 301 302 1m;
                proxy_cache_key $host$uri$is_args$args;
      }
 
location ~ /purge(/.*) {
                  allow all;#指定可以清除缓存的ip,all允许所有ip清除
                  proxy_cache_purge my-cache $host$1$is_args$args;
}

6、启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

7、purge命令清除静态缓存

http://域名+purge+静态资源相对路径    来清除静态资源缓存
 
例如,在浏览器地址栏输入
http://www.baidu.com/purge/resources/app/css/product.css

即可清除在nginx服务器缓存的静态文件

docs/ingress/nginx/m1_01_ngx_cache_purge.txt · 最后更改: 2020/09/25 21:49 (modify by Amos)