nginx快取設定先設定一個cache日誌的格式,可以在日誌中查看「MISS」和「HIT」狀態log_format cache '***$time_localalog_format cache ‘ ' '***Cache-Control: $upstream_http_cache_control ' '***Expires: $upstream_http_expires ' '***"$request" ($status) ' '***"$http_user_agent" ';其次設定快取參數proxy_connect_timeout 5;proxy_read_timeout 6005; k;proxy_buffers 4 64k;proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k;#註:temp_path與cache_path 指定的路徑必須在同一分割區proxy_temp_path/cache/temp_dir;#MBWeb快取區為cache_one,快取內容自動清除,硬碟快取空間大小為30GB。 proxy_cache_path /cache/cache levels=1:2 keys_z max_size=30g;#設定一個upstreamupstream appserver.清除緩存,假設一個URL為http://192.168.10.3/test.txt,透過造訪http://192.168.10.3/purge/test. 的快取。此功能需要手動編譯模組ngx_cache_purge,下載位址為http://labs.frickle.com/files/,最好用最新版本,本例為2.1。 location ~ /purge(/.*) { #設定只允許指定的IP或IP段才可以清除緩存段才可以清除。 allow 127.0.0.1; deny all; proxy_cache_purge cache_one $host$1$is_args$args; ,因為放之前就會優先配對到此規則,會在清除快取的時候報404錯誤。 location ~ .*.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {proxy_pass http://appserver;proxy_redirect proxy_pass http://appserver;proxy_redirect off; #以網域名稱、URI、參數組合成Web快取的Key值,Nginx根據Key值哈希,儲存內容到二級快取目錄內_ $uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr;proxy_cache cache_one;#對不同的HTTP狀態碼設定不同的快取時間proxy_cache_valid 200 302 1h; 1m;expires 30d;#可以再cache.log日誌中看到 MISS和HIT狀態access_log/usr/local/nginx/logs/cache.log cache;}配置完成,重新啟動設定。 隨便訪問一個頁面http://192.168.10.3/9.jpg,在/cache/cache下面也會產生對應的快取檔案查看cache.log,可以看到第一次造訪為MISS,第二次為HIT***19/Mar/2014:10:48:16 +0800 ***MISS ***Cache-Control: - ***Expires: - *** "GET /9.jpg HTTP/1.1" (200) *** #後面瀏覽器資訊省略了***19/Mar/2014:10:48:37 +0800 ***HIT ***Cache- Control: - ***Expires: - ***"GET /9.jpg HTTP/1.1" (304) ***清除快取造訪http://192.168.10.3/purge/9.jpg,造訪http://192.168.10.3/purge/9.jpg,看到如下資訊說明快取已被清除。 Successful purgeKey : 192.168.10.3/9.jpg Path: /cache/cache/6/c1/368f9db14396c19 以上就介紹了nginx快取配置和ngx_cache_purge總結,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。