nginx的nginx.conf中http模塊配置:
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=cfcache:30m inactive=1d max_size=1g;
fastcgi_cache_methods GET HEAD;
fastcgi_cache cfcache;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_key $http_user_agent$request_method$scheme$host$request_uri;
fastcgi_ignore_client_abort on;
參數(shù)解析:
fastcgi_temp_path:臨時(shí)目錄
fastcgi_cache_path:fastcgi_cache緩存目錄, 只能在http配置項(xiàng)里配置
levels:目錄層級(jí)挂脑,比如1:2會(huì)生成16*256個(gè)字目錄
keys_zone:這個(gè)緩存空間的名字,fastcgi_cache 使用這個(gè)值
inactive:默認(rèn)失效時(shí)間
max_size:表示最多用多少硬盤(pán)空間
fastcgi_cache_valid:定義哪些http頭要緩存
fastcgi_cache_min_uses:URL經(jīng)過(guò)多少次請(qǐng)求將被緩存
fastcgi_cache_use_stale:定義哪些情況下用過(guò)期緩存
fastcgi_cache_key:定義fastcgi_cache的key欲侮,示例中就以請(qǐng)求的URI作為緩存的key崭闲,Nginx會(huì)取這個(gè)key的md5作為緩存文件,如果設(shè)置了緩存哈希目錄威蕉,Nginx會(huì)從后往前取相應(yīng)的位數(shù)做為目錄
fastcgi_cache:用哪個(gè)緩存空間,fastcgi_cache_path的keys_zone值
寫(xiě)在最后:
fastcgi_cache緩存的是fastcgi生成的內(nèi)容刁俭。
proxy_cache減少了nginx與php的通信的次數(shù),減輕php和數(shù)據(jù)庫(kù)壓力韧涨,比membercache來(lái)的更直接牍戚。
弊端是緩存不能更新,也容易會(huì)出現(xiàn)混亂虑粥。但是不是沒(méi)有解決辦法如孝,這個(gè)就需要折騰了
wordpress和fastcgi的例子:
WordPress的fastcgi cache緩存更新腳本
解決Fastcgi_cache移動(dòng)版與Web版緩存混亂問(wèn)題