為了優化速度,nginx配置可proxy_cache_path模塊緩存數據
什么是Nginx緩存?
Nginx基於Proxy Store實現,使用Nginx的http_proxy模塊可以實現類似於squid的緩存功能。當啟用緩存時,Nginx會將相應數據保存在磁盤緩存中,只要緩存數據尚未過期,就會使用緩存數據來響應客戶端的請求。
如何啟用緩存?
Nginx啟用緩存需要在最頂層的http節點下,如:/etc/nginx/nginx.conf 配置
啟用響應緩存
若想啟用緩存,需在 http 中使用 proxy_cache_path 指令。其第一個強制參數為用於緩存內容的本地文件系統路徑,第二個強制參數為 keys_zone,定義 共享內存區(shared memory zone)的名稱和大小,該共享內存用於保存緩存項目的元數據:
http {
...
proxy_cache_path /data/nginx/cache keys_zone=one:10m;
}
然后,想為哪些 context 來緩存服務器的響應,就在其中使用 proxy_cache 指令,用來指定內存區的名稱,即 proxy_cache_path
指令中的 keys_zone
參數中的名稱,此處為 one:
http {
...
proxy_cache_path /data/nginx/cache keys_zone=one:10m;
server {
proxy_cache one;
location / {
proxy_pass http://localhost:8000;
}
}
}
注意,由 keys_zone 參數指定的大小,不會限制被緩存下來的響應數據的總量。被緩存的響應和其元數據的副本一同保存在文件系統中特定的文件中,若想限制被緩存的響應數據的總量,可以在 proxy_cache_path 指令中使用 max_size 參數。
nginx 緩存所涉及的進程
優化緩存層次結果
proxy_cache_path /data/to_cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;