前言
反向代理使用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; } }
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; } }
加了三行:
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分鍾