深入Nginx + PHP 快取詳解

03ngnntds發表於2019-03-04

以下是對Nginx中的PHP快取進行了詳細的分析介紹,需要的朋友可以參考下
Nginx快取
nginx有兩種快取機制:fastcgi_cache和proxy_cache
下面我們來說說這兩種快取機制的區別吧
proxy_cache作用是快取後端伺服器的內容,可能是任何內容,包括靜態的和動態的
fastcgi_cache作用是快取fastcgi生成的內容,很多情況是php生成的動態內容
proxy_cache快取減少了nginx與後端通訊的次數,節省了傳輸時間和後端頻寬
fastcgi_cache快取減少了nginx與php的通訊次數,更減輕了php和資料庫的壓力。
proxy_cache快取設定
複製程式碼 程式碼如下:
#注:proxy_temp_path和proxy_cache_path指定的路徑必須在同一分割槽
proxy_temp_path /data0/proxy_temp_dir;
#設定Web快取區名稱為cache_one,記憶體快取空間大小為200MB,1天沒有被訪問的內容自動清除,硬碟快取空間大小為30GB。
proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
server
{
listen 80;
server_name   192.168.8.42;
index index.html index.htm;
root /data0/htdocs/www;
location /
{
#如果後端的伺服器返回502、504、執行超時等錯誤,自動將請求轉發到upstream負載均衡池中的另一臺伺服器,實現故障轉移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
#對不同的HTTP狀態碼設定不同的快取時間
proxy_cache_valid 200 304 12h;
#以域名、URI、引數組合成Web快取的Key值,Nginx根據Key值雜湊,儲存快取內容到二級快取目錄內
proxy_cache_key  h o s t host h o s t uri i s a r g s is_args i s a r g s args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass
expires 1d;
}
#用於清除快取,假設一個URL為http://192.168.8.42/test.txt,透過訪問http://192.168.8.42/purge/test.txt就可以清除該URL的快取。
location ~ /purge(/.*)
{
#設定只允許指定的IP或IP段才可以清除URL快取。
allow 127.0.0.1;
allow 192.168.0.0/16;
deny all;
proxy_cache_purge cache_one $host 1 1 1 is_args KaTeX parse error: Expected 'EOF', got '}' at position 7: args; }̲ #副檔名以.php、.jsp…
{
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass
}
access_log off;
}
}

fastcgi_cache快取設定
複製程式碼 程式碼如下:
#定義快取存放的資料夾
fastcgi_cache_path /tt/cache levels=1:2 keys_zone=NAME:2880m inactive=2d max_size=10G;
#定義快取不同的url請求
fastcgi_cache_key " s c h e m e scheme s c h e m e request_method h o s t host h o s t uri a r g f i l e n a m e arg_filename a r g f i l e n a m e arg_x KaTeX parse error: Expected '}', got 'EOF' at end of input: …ation ~ (|.php)  {
root /www; 127.0.0.1:9000;
fastcgi_cache NAME;
fastcgi_cache_valid 200 48h;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69911024/viewspace-2637507/,如需轉載,請註明出處,否則將追究法律責任。

相關文章