標籤: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加速網站