1. 程式人生 > 實用技巧 >Nginx的快取控制

Nginx的快取控制

快取

  • 瀏覽器快取

加速使用者訪問,提升單個使用者(瀏覽器訪問者)體驗,快取在本地

  • Nginx快取

快取在Nginx端,提升所有訪問到Nginx這一端的使用者體驗
提升訪問上游(upstream)伺服器的速度
使用者訪問仍然產生請求流量

Nginx控制瀏覽器快取

expires

server {
    listen  80;
    server_name www.supergan.cn;    # 你的域名
    
    location / {
        alias /home/www;
        # expires 10s;
        # expires @22h30m;
        # expires -1h;  # 快取提前過期
        # expires epoch;# no cache
        # expires off;  # 預設,關閉Nginx端的快取控制
        expires max;    # 永不過期
    }
}

Nginx的反向代理快取

# 配置上游伺服器(叢集)
upstream tomcats {
    server 192.168.1.101:8080 weight=1; # weight值越大處理請求量越大
    server 192.168.1.102:8080 weight=3;
    server 192.168.1.103:8080 weight=5;
    
    keepalived 32;
}

# proxy_cache_path 設定快取儲存的目錄
# keys_zone 設定共享記憶體以及佔用的空間大小
# max_size 設定快取大小
# inactive 超過此時間,則快取自動清理
# use_temp_path 關閉臨時目錄

proxy_cache_path /usr/local/nginx/upstream_cache keys_zone=mycache:5m max_size=1g inactive=1m use_temp_path=off

server {
    listen  80;
    server_name www.supergan.cn;    # 你的域名

    # 開啟並使用快取
    proxy_cache mycache;
    # 針對200和304狀態碼的快取設定過期時間
    proxy_cache_valid 200 304 8h

    location / {
        proxy_pass  http://tomcats;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}