nginx 緩存是可以將遠程服務器上的內容緩存到本地,可以設置緩存大小,緩存時間,緩存目錄等等
具體配置如下
proxy_cache_path /home/http/cache/ levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; location ^~ /static2/ { proxy_cache my_cache; proxy_cache_valid 200 206 304 301 302 10d; proxy_cache_key $uri; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://uuu; }
/home/http/cache #本地路徑,用來設置Nginx緩存資源的存放地址
levels #默認所有緩存文件都放在同一個/path/to/cache下,但是會影響緩存的性能,因此通常會在/path/to/cache下面建立子目錄用來分別存放不同的文件。假設levels=1:2,Nginx為將要緩存的資源生成的key為f4cd0fbc769e94925ec5540b6a4136d0,那么key的最后一位0,以及倒數第2-3位6d作為兩級的子目錄,也就是該資源最終會被緩存到/path/to/cache/0/6d目錄中
key_zone #在共享內存中設置一塊存儲區域來存放緩存的key和metadata(類似使用次數),這樣nginx可以快速判斷一個request是否命中或者未命中緩存,1m可以存儲8000個key,10m可以存儲80000個key
max_size #最大cache空間,如果不指定,會使用掉所有disk space,當達到配額后,會刪除最少使用的cache文件
inactive #未被訪問文件在緩存中保留時間,本配置中如果60分鍾未被訪問則不論狀態是否為expired,緩存控制程序會刪掉文件。inactive默認是10分鍾。需要注意的是,inactive和expired配置項的含義是不同的,expired只是緩存過期,但不會被刪除,inactive是刪除指定時間內未被訪問的緩存文件
proxy_cache 開啟緩存
proxy_cache_valid 設置狀態緩存
proxy_cache_key 設置緩存文件名格式