一、第一步定義一個緩存目錄設置目錄結構
在 http 模塊下定義(keys_zone = 緩存區名:后面是緩存區大小 inactive 不活躍的文件多久清理 max_size 緩存區所占磁盤的上限 use_temp_path 默認關閉(有需要自己百度))
proxy_cache_path /path/your_cache_dir levels = 1:2 keys_zone=your_cache_name:10g inactive=1h max_size=20g use_temp_path=off;
二、開啟緩存
在 http、server、location 中開啟代理緩存
舉例在location中開啟(將圖片jscsshtml等放入緩存)
server {listen 8099; #緩存端口或者緩存域名root /www/wwwroot/static/;index index.html;location ~*.\.(png|jpg|css|html)$ {expires 30m; #緩存過期時間在瀏覽器的緩存時間proxy_pass http://localhost:8100; # 代理地址非緩存文件的訪問地址,***必須加這個否則生成不來緩存這個***proxy_cache your_cache_name; #proxy_cache_path中定義的名字proxy_cache_valid 200 10m; #把狀態值為200的緩存10分鐘proxy_cache_valid any 5m; #把狀態值除來200的緩存5分鐘proxy_cache_key "$host$request_uri"; #默認keyproxy_cache_revalidate on; #是否開啟驗證緩存的有效性關閉則緩存數據有變化依然請求緩存 開啟則會請求新的proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; #當后臺出現錯誤時跳過add_header X-Proxy-Cache $upstream_cache_status; #在頭文件新增一個X-Proxy-Cache(自定義)驗證緩存是否命中 Hit命中 miss 沒有命中}
}server {listen 8100; #正式的地址root /www/wwwroot/static/;index index.html; # 其他配置...
}
注意事項
nginx 緩存叫代理緩存 應該是有兩臺以上的服務器。如果只有一臺加不同的域名或者端口做區分。把后臺服務器和緩存服務分開
緩存沒有生成
1、文件夾是否有權限
2、是否設置了proxy_pass(只有走代理才會生成緩存)