使用fastcgi_cache加速網站

來源:互聯網
上載者:User

標籤:http   color   io   os   使用   ar   檔案   資料   on   

為了提高網站的效能緩衝是一把利器,nginx中可以配置fastcig_cache來緩衝不需要即時擷取的資料實現動靜分離,nginx.conf配置如下:

http
{

    …

    fastcgi_connect_timeout 300;#指定串連到後端FastCGI的逾時時間
    fastcgi_send_timeout 300;#指定向FastCGI傳送請求的逾時時間,這個值是已經完成兩次握手後向FastCGI傳送請求的逾時時間
    fastcgi_read_timeout 300;#指定接收FastCGI應答的逾時時間,這個值是已經完成兩次握手後接收FastCGI應答的逾時時間。
    fastcgi_buffer_size 256k;#用於指定讀取FastCGI應答第一部分需要多大的緩衝區,這個值表示將使用1個64KB的緩衝區讀取應答的第一部分(應答頭),可以設定為fastcgi_buffers選項指定的緩衝區大小。
    fastcgi_buffers 4 256k;#指定本地需要用多少和多大的緩衝區來緩衝FastCGI的應答請求。如果一個PHP指令碼所產生的頁面大小為256KB,那麼會為其分配4個64KB的緩衝區來緩衝;如果頁面大小大於256KB,那麼大於256KB的部分會緩衝到fastcgi_temp指定的路徑中,但是這並不是好方法,因為記憶體中的資料處理速度要快於硬碟。一般這個值應該為網站中PHP指令碼所產生的頁面大小的中間值,如果網站大部分指令碼所產生的頁面大小為256KB,那麼可以把這個值設定為“16 16k”、“4 64k”等。
    fastcgi_busy_buffers_size 512k;#預設值是fastcgi_buffers的兩倍。
    fastcgi_temp_file_write_size 512k;#表示在寫入快取檔案時使用多大的資料區塊,預設值是fastcgi_buffers的兩倍。
    fastcgi_temp_path /dev/shm/factcgi_temp_path 1 2;#產生fastcgi_cache臨時檔案目錄   

    fastcgi_cache_path   /dev/shm/fastcgi_cache  levels=1:2  keys_zone=PHPCACHE:1024m inactive=15m;  #fastcgi_cache緩衝目錄,可以設定目錄雜湊層級,比如2:2會產生256*256個字目錄,keys_zone是這個緩衝空間的名字,cache是用多少記憶體(這樣熱門的內容nginx直接放記憶體,提高訪問速度),inactive表示預設失效時間,max_size表示最多用多少硬碟空間,需要注意的是fastcgi_cache緩衝是先寫在fastcgi_temp_path再移到fastcgi_cache_path,所以這兩個目錄最好在同一個分區,從0.8.9之後可以在不同的分區,不過還是建議放同一分區。
    fastcgi_cache_key "$scheme$request_method$host$request_uri";#定義fastcgi_cache的key,樣本中就以請求的URI作為緩衝的key,Nginx會取這個key的md5作為快取檔案,如果設定了緩衝雜湊目錄,Nginx會從後往前取相應的位元做為目錄。
    fastcgi_cache_use_stale error  timeout invalid_header http_500; #定義哪些情況下用到期緩衝

    …

在server中使用緩衝:

server {

    …

    set $no_cache 0;#設定全部緩衝

    location /my {
            set $no_cache 1;#設定不緩衝/my目錄
            rewrite  ^(.*)$  /index.php/$1  last;
            break;
    }

    location ~ .+\.php($|/) {
            set $script $uri;
            set $path_info "/";
            if ($uri ~ "^(.+\.php)(/.+)") {
                set $script $1;
                set $path_info $2;
            }

            fastcgi_cache   PHPCACHE;
            fastcgi_no_cache $no_cache;
            fastcgi_cache_bypass   $no_cache;
            fastcgi_cache_valid   200 302  1h;
            fastcgi_cache_valid   301      1h;
            fastcgi_cache_valid   any      1m;
            fastcgi_cache_min_uses  1;
            fastcgi_ignore_headers Cache-Control Expires;

            fastcgi_pass 127.0.0.1:9001;
            fastcgi_index index.php?IF_REWRITE=1;
            include fastcgi_params;
            fastcgi_param PATH_INFO $path_info;
            fastcgi_param SCRIPT_FILENAME $document_root/$script;
            fastcgi_param SCRIPT_NAME $script;
        }

清空緩衝:

url:http://www.xxx.com/zhouyou.html
組成方式:
    httpGETwww.xxx.com/zhouyou.html
返回md5:
    FB9AAC75CE375A1A2419BD1C4AE90731
第一個目錄是截取最後一位元字:1
第二個目錄為截取最後兩個數字:73

進入/dev/shm/fastcgi_cache/1/73 刪除FB9AAC75CE375A1A2419BD1C4AE90731檔案

使用fastcgi_cache加速網站

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.