緩存類型
1丰榴、客戶端緩存(瀏覽器緩存)
2、服務(wù)端緩存(redis等)
3缨恒、代理緩存(靜態(tài)資源緩存)
緩存配置
upstream test1 {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
proxy_cache_path /soft/cache levels=1:2 keys_zone=test-cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 80;
server_name www.ylw.com;
location / {
proxy_pass http://test1;
proxy_cache test-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 10m;
proxy_cache_key $host$uri$is_args$args;
add_header Nginx-Cache "$upstream_cache_status";
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;#當(dāng)后端節(jié)點(diǎn)出現(xiàn)錯(cuò)誤,超時(shí),http頭部信息不正常惫搏,狀態(tài)碼為500、502蚕涤、503筐赔、504時(shí),負(fù)載均衡跳過該節(jié)點(diǎn)揖铜,將任務(wù)分發(fā)至其他節(jié)點(diǎn)
include /etc/nginx/conf.d/proxy;
}
}
配置詳解
proxy_cache_path
? /soft/cache#緩存存放路徑
? levels=1:2#目錄級(jí)別為二級(jí)(常用)茴丰。三級(jí)目錄寫法為“l(fā)evels=1:2:3”
? keys_zone=test-cache:10m#開辟一個(gè)大小為10m的共享內(nèi)存區(qū),該內(nèi)存區(qū)用于存儲(chǔ)緩存鍵和元數(shù)據(jù)天吓。1m可以存儲(chǔ)8000個(gè)key(8000條緩存記錄)
? max_size=10g#最大使用10G的磁盤空間贿肩,當(dāng)緩存達(dá)到這個(gè)上線,處理器便調(diào)用 cache manager 來移除最近最少被使用的文件龄寞,這樣把緩存的空間降低至這個(gè)限制之下
? inactive=60m#60分鐘內(nèi)汰规,如果該緩存沒被訪問,該緩存記錄將被移除
? use_temp_path=off#不使用臨時(shí)緩存
proxy_cache_valid 200 304 12h#狀態(tài)碼為200和304的內(nèi)容緩存時(shí)間為12小時(shí)
proxy_cache_valid any 10m#所有緩存時(shí)間為10分鐘
proxy_cache_key $host$uri$is_args$args#設(shè)置緩存的key值
add_header Nginx-Cache "$upstream_cache_status"#增加一個(gè)http頭部信息物邑,可以查看到是否命中緩存
注意:inactive與proxy_cache_valid區(qū)別
inactive值表示緩存活動(dòng)時(shí)間溜哮,當(dāng)超過該時(shí)間緩存沒被訪問,該緩存記錄將被刪除
proxy_cache_valid值表示緩存過期時(shí)間色解,當(dāng)超過該時(shí)間時(shí)茂嗓,無論緩存是否經(jīng)常被訪問,代理服務(wù)器都會(huì)向后端節(jié)點(diǎn)重新請(qǐng)求該數(shù)據(jù)科阎,更新緩存