Nginx用爲緩存服務器

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/b7f54b2df7773722d382f4809d650 29c
  • 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分鐘;
相關文章
相關標籤/搜索