Nginx反向代理緩存配置


前言

  反向代理使用Nginx,當客戶端向Nginx服務器發送請求時,Nginx轉發給集群,當請求到達Nginx時可以加一層緩存,可存儲動態頁面,當緩存存在時Nginx直接將緩存返回給客戶端,而不請求服務器,這樣可以將一大部分請求攔截到直接返回緩存,使服務器壓力降低。

 

緩存配置

  無緩存配置

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    server {
        listen      8080;
        server_name  localhost;
        }
              
        location / {
            proxy_pass  http://127.0.0.1:8878;
        }
 }
View Code

 

  proxy_pass指令:用來設置被代理服務器的地址,可以是主機名稱,IP地址加端口號等形式

  現在加上緩存配置

worker_processes  1;

events {
    worker_connections  1024;
}


http {
     proxy_cache_path ../data levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    
    
    server {
        listen      8080;
        server_name  localhost;
        }
              
        location / {
                 proxy_cache cache_one;
                 proxy_cache_valid 200 304 302 1h;
                 proxy_pass  http://127.0.0.1:8878;
                 proxy_cache_key  $uri$is_args$args;
        }
 }
View Code

 

  加了三行:

proxy_cache_path  ../data  levels=1:2  keys_zone=cache_one:500m  inactive=1d  max_size=30g;

  proxy_cache_path:表示緩存文件存放的路徑,該路徑是預先就要創建好的 levels=1:2 :   設置在相對於path指定目錄的第幾級hash目錄中緩存數據,levels=1,表示一級hash目錄,levels=1:2,表示兩級hash目錄

 

proxy_cache cache_one;

  表示這個server使用上面設置的那個cache

 

proxy_cache_valid 200 304 302 24h; 

  針對不同的HTTP響應狀態設置不同的緩存時間,如果不設置,nginx服務器只為HTTP狀態代碼為200,301和302的響應數據做緩存 使用any可以表示緩存所有該指令中未設置的其他響應數據,如:

proxy_cache_valid 200 302 10m;

proxy_cache_valid 301 1h;

proxy_cache_valid any 1m;

  表示的是對返回狀態為200,302的響應數據緩存10分鍾,對返回狀態碼為301的響應數據緩存1小時,非200,302,301返回狀態的響應數據緩存1分鍾

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM