|
很久以前在TW上挖了個坑,說nginx的fastcgi_cache是被大家忽視的一大金礦,今天把這個坑填上。
對于變化不太頻繁的數據,大家都比較喜歡存Memcached以減少數據庫的讀取,但還是會有語言解析運行上的消耗(比如運行php,Python等),當然這個時間很短,記得OP上有個同學說P字頭的語言,效率都不高,如果能省去,當然最好。(已經用上Squid等的可以忽略本文)。
還有一個問題就是很多時候一個頁面由多個數據片斷組成,為了提高頁面速度,要么分別緩存,要么整體緩存(所謂的Page Cache),其實都比較麻煩,增加和減少數據片斷的時,大多需要調整。
最后一個問題,所有的數據都存Memcached是否經濟?服務器資源足夠多的無所謂,捉襟見肘的就要考慮了,當然,生成靜態頁面是一種方法,需要維護,還是比較累。
好吧,nginx的fastcgi_cache可以解決上面的那些問題,比較squid等的好處是簡單,不需再要去維護另外一個系統,適合不那么大的網站。
關于Nginx fastcgi_cache,基礎的可以參看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網站,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。