溫馨提示×

Nginx緩存策略如何配置

小樊
49
2025-08-12 00:37:42
欄目: 編程語言

Nginx的緩存策略可以通過配置文件中的proxy_cache指令來實現。以下是一些基本的配置步驟和示例:

1. 定義緩存區域

首先,你需要定義一個緩存區域,指定緩存的存儲路徑、大小和其他參數。

http {
    # 定義緩存區域
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            # 啟用緩存
            proxy_cache my_cache;
            proxy_pass http://backend_server;

            # 緩存控制頭
            add_header X-Cache-Status $upstream_cache_status;

            # 緩存有效期
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;

            # 緩存方法
            proxy_cache_methods GET HEAD;

            # 緩存鍵
            proxy_cache_key "$scheme$request_method$host$request_uri";

            # 緩存清理
            proxy_cache_purge my_cache "$scheme$request_method$host$request_uri";
        }
    }
}

2. 配置緩存控制頭

你可以通過add_header指令添加自定義的緩存控制頭,例如:

add_header X-Cache-Status $upstream_cache_status;

3. 設置緩存有效期

使用proxy_cache_valid指令設置不同狀態碼的緩存有效期:

proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;

4. 限制緩存的方法

使用proxy_cache_methods指令限制緩存的方法:

proxy_cache_methods GET HEAD;

5. 自定義緩存鍵

使用proxy_cache_key指令自定義緩存鍵:

proxy_cache_key "$scheme$request_method$host$request_uri";

6. 清理緩存

使用proxy_cache_purge指令清理緩存:

proxy_cache_purge my_cache "$scheme$request_method$host$request_uri";

7. 其他高級配置

  • 緩存路徑proxy_cache_path指令中的levels參數定義了緩存目錄的層級結構,keys_zone定義了緩存區域的名稱和大小,max_size定義了緩存的最大大小,inactive定義了緩存項在不被訪問時的最大存活時間,use_temp_path設置為off可以避免使用臨時文件路徑。
  • 緩存清理proxy_cache_purge指令可以用來清理特定的緩存項,需要確保Nginx編譯時啟用了ngx_http_proxy_module模塊。

示例配置文件

以下是一個完整的示例配置文件:

http {
    # 定義緩存區域
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            # 啟用緩存
            proxy_cache my_cache;
            proxy_pass http://backend_server;

            # 緩存控制頭
            add_header X-Cache-Status $upstream_cache_status;

            # 緩存有效期
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;

            # 緩存方法
            proxy_cache_methods GET HEAD;

            # 緩存鍵
            proxy_cache_key "$scheme$request_method$host$request_uri";

            # 緩存清理
            proxy_cache_purge my_cache "$scheme$request_method$host$request_uri";
        }
    }
}

通過以上配置,你可以靈活地控制Nginx的緩存策略,以滿足不同的需求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女