|
很久以前在TW上挖了個坑,說nginx的fastcgi_cache是被大家忽視的一大金礦,今天把這個坑填上。
對于變化不太頻繁的數(shù)據(jù),大家都比較喜歡存Memcached以減少數(shù)據(jù)庫的讀取,但還是會有語言解析運行上的消耗(比如運行php,Python等),當(dāng)然這個時間很短,記得OP上有個同學(xué)說P字頭的語言,效率都不高,如果能省去,當(dāng)然最好。(已經(jīng)用上Squid等的可以忽略本文)。
還有一個問題就是很多時候一個頁面由多個數(shù)據(jù)片斷組成,為了提高頁面速度,要么分別緩存,要么整體緩存(所謂的Page Cache),其實都比較麻煩,增加和減少數(shù)據(jù)片斷的時,大多需要調(diào)整。
最后一個問題,所有的數(shù)據(jù)都存Memcached是否經(jīng)濟?服務(wù)器資源足夠多的無所謂,捉襟見肘的就要考慮了,當(dāng)然,生成靜態(tài)頁面是一種方法,需要維護,還是比較累。
好吧,nginx的fastcgi_cache可以解決上面的那些問題,比較squid等的好處是簡單,不需再要去維護另外一個系統(tǒng),適合不那么大的網(wǎng)站。
關(guān)于Nginx fastcgi_cache,基礎(chǔ)的可以參看Nginx官方文檔http://wiki.nginx.org/HttpFcgiModule,下面是一個典型的做法是:
fastcgi_temp_path /data/ngx_fcgi_tmp;
fastcgi_cache_path /data/ngx_fcgi_cache levels=2:2 keys_zone=ngx_fcgi_cache:512m inactive=1d max_size=40g;
fastcgi_cache_valid 200 301 302 1d;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_key http://$host$request_uri;
it知識庫:使用fastcgi_cache加速你的Nginx網(wǎng)站,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。