1. 程式人生 > >Nginx用為緩存服務器

Nginx用為緩存服務器

緩存對象 cache keys 有效 服務 客戶端請求 本地 clas listen

Nginx 緩存組成
  • 共享內存
    • 數據定位
    • 存儲鍵和緩存對象的元數據
  • 磁盤空間:
    • 存儲數據
nginx做為反向代理時,能夠將來自upstream的響應緩存至本地,並在後續的客戶端請求同樣內容時直接從本地構造響應報文。 proxy_cache 模塊
為上遊服務器提供緩存功能 當客戶端再請求時先從緩存中找,找到直接發給客戶端; proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m max_size=1G
  • /data/nginx/cache
    • 本地接受上遊服務器響應的,存的目錄;
      • 緩存文件名:/data/nginx/cache/c
        /29/b7f54b2df7773722d382f4809d65029c
  • level
    • 緩存的目錄名字符個數
    • 緩存最多三級
      • 1:2:2
      • 有三級目錄,第一級目錄名1個字符,第二,三級目錄名2個字符
      • 字符個數最多2個
  • keys_zone=one:10m
    • one
      • 緩存區域名稱
    • 10m
      • 緩存大小為10M
  • max_size=10G
    • /data/nginx/cache 緩存對象目錄的大小
實踐
  http{
      upstream backend {
              server 10.103.100.3:8090;
              server 10.103.100.4:8090;
       }
 
      
     proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m max_size=1G
      server {
 
          listen 80;
          server_name localhost;
 
          location /{
              proxy_pass http://backend;
              proxy_cache one;
              proxy_cache_valid 200 10m;
            
          }
     }
      
 
  }
註意:
  • proxy_cache_path 和upstream一樣在http配置塊中定義
  • location中使用proxy_cache 緩沖區名 來使用該緩存區
  • 註意,必須定義緩存有效時間,不然無法使用緩存
    • 如不定義:proxy_cache_valid 200 10m;則無法使用返回頁為200的緩存;
    • 當然可以使用proxy_cache_valid any 1m;定義所有的緩存有效期為1分鐘;

Nginx用為緩存服務器