Nginx快取配置及nginx ngx_cache_purge模組的使用
阿新 • • 發佈:2018-12-17
ngx_cache_purge模組的作用:用於清除指定url的快取
1、編譯如下:
# ./configure --prefix=/app/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_cache_purge-2.3 # make # make install
2、nginx配置如下:
proxy_cache_path /app/proxy_cache_dir levels=1:2 keys_zone=cache1:200m inactive=1d max_size=10g; #設定Web快取區名稱為cache1,記憶體快取空間大小為200MB,1天沒有被訪問的內容自動清除,硬碟快取空間大小為30GB。levels=1:2 表示快取目錄的第一級目錄是1個字元,第二級目錄是2個字元,即/app/proxy_cache_dir/cache1/a/1b這種形式 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } location ~ /purge(/.*) { allow 127.0.0.1; allow 192.168.116.0/24 deny all; proxy_cache_purge cache1 $host$1$is_args$args; } location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:8080; proxy_cache cache1; #設定資源快取的zone proxy_cache_key $host$uri$is_args$args; #設定快取的key,以域名、URI、引數組合成Web快取的Key值,Nginx根據Key值雜湊,儲存快取內容到二級快取目錄內 proxy_cache_valid 200 304 12h; #對不同的HTTP狀態碼設定不同的快取時間 expires 7d; #快取時間 } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
啟動nginx,檢視程序,發現新增了兩個程序:
3、驗證快取及手動清除指定url快取功能
如果在快取時間之類需要更新被快取的靜態檔案怎麼辦呢,這時候就需要手動來清除快取了。
訪問一張圖片:
檢視快取的檔案:
更換圖片內容,然後清除快取後再訪問:
http://192.168.116.130/purge/test/n.jpg #訪問此url可以清楚快取。
再次訪問原來的url,圖片已更新: