天天看點

使用fastcgi_cache加速Nginx站點

http://jybb.me/nginx-fastcgi_cache

說到緩存,想到的大部分都是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層加入:

2

fastcgi_cache_path

/home/cache/fcgi

levels=1:2

keys_zone=fcgi:15m

inactive=1d

max_size=1g;

#15m為記憶體占用  1g為硬碟最大占用空間

3、修改位于vhost目錄下的站點檔案

3

4

5

6

7

8

9

10

11

12

13

14

15

location ~ .*\.(php|php5)?$

            {

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /home/wwwroot/網站目錄$fastcgi_script_name;  #把網站目錄修改成自己的

            include        fastcgi_params;

            fastcgi_cache fcgi;    #表示開啟FastCGI緩存并為其指定一個名稱。

            fastcgi_cache_valid 200 302 301 1h;     #緩存http狀态200 302 301 1小時

            fastcgi_cache_valid any 1m; #其他應答代碼緩存1分鐘。

            fastcgi_cache_min_uses 1;   #設定連結請求幾次就被緩存。

            fastcgi_cache_use_stale error timeout invalid_header http_500;    #定義哪些情況下用過期緩存

            fastcgi_cache_key $request_method://$host$request_uri;  #注意一定要加上$request_method作為cache key,否則如果HEAD類型的先請求會導緻後面的GET請求傳回為空

}

4、重新開機nginx即可

/etc/init.d/nginx

restart

5、打開站點,看緩存目錄是否增大

du

-sh