在上一篇文章Debian下安裝Zend Opcache加快PHP中,我先容了通過(guò)安裝php插件對(duì)操縱碼緩存從而加快php會(huì)見(jiàn)的要領(lǐng)。對(duì)付常見(jiàn)的LNMP架構(gòu)來(lái)說(shuō),php緩存也只是個(gè)中一個(gè)環(huán)節(jié),我們同樣可以對(duì)nginx以及mysql舉辦緩存。本日就來(lái)先容下如何通過(guò)開(kāi)啟nginx fastcgi cache舉辦緩存加快。
實(shí)際上nginx有兩種常見(jiàn)的緩存模式:署理模式proxy_cache和當(dāng)?shù)啬J絝astcgi_cache。
proxy_cache的浸染是緩存后端處事器的內(nèi)容,大概是任何內(nèi)容,包羅靜態(tài)的和動(dòng)態(tài)。淘汰了nginx與
后端通信的次數(shù),節(jié)減了傳輸時(shí)間和后端寬帶。
fastcgi_cache的浸染是緩存fastcgi生成的內(nèi)容,許多環(huán)境是php生成的動(dòng)態(tài)的內(nèi)容。淘汰了nginx與
php的通信的次數(shù),更減輕了php和數(shù)據(jù)庫(kù)(mysql)的壓力,這比用memcached之類的緩存要輕松得多。
proxy_cache和fastcgi_cache可以在一個(gè)應(yīng)用中同時(shí)利用,假如都用得著的話。
對(duì)付一般的應(yīng)用來(lái)說(shuō),單臺(tái)處事器就足夠了。因此,我們這里重點(diǎn)先容下Nginx的FastCGI CACHE緩存模式。
實(shí)際上FastCGI Cache的道理就是將Nginx通過(guò)FastCGI轉(zhuǎn)發(fā)的請(qǐng)求緩存到硬盤中,再次請(qǐng)求的時(shí)候就可以直接從內(nèi)存中讀取,晉升網(wǎng)站的加載速度。假如不太大白FastCGI的浸染,可以參考CGI、FastCGI、PHP-FPM先容。
Nginx FastCGI Cache設(shè)置要領(lǐng) 1、建設(shè)Cache目次
首先建設(shè)Cache目次:
2、修改nginx設(shè)置文件
新建虛擬主機(jī)設(shè)置文件,假設(shè)正常的設(shè)置文件如下:
server { listen ; #ipv6 #listen [::]:80 default_server; root /var/www/tennfy.com; index index.php index.html index.htm; server_name tennfy.com www.tennfy.com; location / { include wordpress.conf; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } |
在server的上方添加緩存目次:
# !緩存文件存放目次 # levels 緩存條理 # keys_zone 緩存空間名和共享內(nèi)存巨細(xì)(熱點(diǎn)內(nèi)容放在內(nèi)存) # inactive 失效時(shí)間, 1d = 1天 # max_size 最大緩存空間(硬盤占用) fastcgi_cache_path /tmp/cache levels=: keys_zone=fcgi:15m inactive=1d max_size=1g; |
然后在fastcgi部門添加如下代碼:
# 挪用 cache 的定名空間 fastcgi_cache fcgi; # 生效值: 即署理方針的狀態(tài)碼以及緩存時(shí)間 fastcgi_cache_valid 1h; fastcgi_cache_valid any 1m; # 請(qǐng)求過(guò)幾多次溝通的URL后, 緩存將開(kāi)始 fastcgi_cache_min_uses ; # 確定緩存成為逾期數(shù)據(jù)的環(huán)境 fastcgi_cache_use_stale error timeout invalid_header http_500; # 生成的緩存名稱的 key 的名字 # $scheme https/http # $request_method 請(qǐng)求要領(lǐng),基于上面的配置,這里為GET # $host 主機(jī) # $request_uri 請(qǐng)求地點(diǎn) fastcgi_cache_key $request_method://$host$request_uri; |