說到緩存,想到的大部分都是Memcache、Xcache、Proxy_Cache,FastCgi Cache貌似一直被人忽略中,FastCgi緩存也是不錯的(我也最近才聽說)
引用某人的一句話:
lnmp一鍵包沒開啟fastcgi cache是一大敗筆
開啟FastCGI Cache步驟非常簡單
1、新建文件夾存放緩存文件
1 |
mkdir /home/cache/fcgi -p |
2、修改nginx.conf文件(LNMP一鍵包目錄在/usr/local/nginx/conf/nginx.conf),在http層加入:
1 |
fastcgi_cache_path /home/cache/fcgi levels=1:2 keys_zone=fcgi:15m inactive=1d max_size=1g; |
2 |
#15m為內存佔用 1g為硬盤最大佔用空間 |
3、修改位於vhost目錄下的站點文件
01 |
location ~ .*\.(php|php5)?$ |
02 |
{ |
03 |
fastcgi_pass 127.0.0.1:9000; |
04 |
fastcgi_index index.php; |
05 |
fastcgi_param SCRIPT_FILENAME /home/wwwroot/網站目錄$fastcgi_script_name; #把網站目錄修改成自己的 |
06 |
include fastcgi_params; |
07 |
fastcgi_cache fcgi; #表示開啟FastCGI緩存並為其指定一個名稱。 |
08 |
fastcgi_cache_valid 200 302 301 1h; #緩存http狀態200 302 301 1小時 |
09 |
fastcgi_cache_valid any 1m; #其他應答代碼緩存1分鐘。 |
10 |
fastcgi_cache_min_uses 1; #設置鏈接請求幾次就被緩存。 |
11 |
fastcgi_cache_use_stale error timeout invalid_header http_500; #定義哪些情況下用過期緩存 |
12 |
fastcgi_cache_key $request_method://$host$request_uri; #注意一定要加上$request_method作為cache key,否則如果HEAD類型的先請求會導致後面的GET請求返回為空 |
13 |
} |
4、重啟nginx即可
1 |
/etc/init.d/nginx restart |
5、打開站點,看緩存目錄是否增大
1 |
du -sh /home/cache/fcgi |
link:http://jybb.me/nginx-fastcgi_cache