在Nginx配置中設置緩存策略,主要涉及到以下幾個指令:proxy_cache_path
、proxy_cache_key
、proxy_cache_valid
、proxy_cache_bypass
和 proxy_no_cache
。以下是一個簡單的示例,展示了如何在Nginx配置文件中設置緩存策略:
打開Nginx配置文件,通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/your_domain.conf
。
在 http
或 server
塊中,使用 proxy_cache_path
指令定義緩存路徑和參數。例如:
http {
...
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
...
}
這里,我們定義了一個名為 my_cache
的緩存區域,最大容量為1GB,緩存文件的最大閑置時間為60分鐘。
server
或 location
塊中,使用 proxy_cache_key
指令自定義緩存鍵。例如:server {
...
location / {
...
proxy_cache_key "$scheme$proxy_host$request_uri";
...
}
}
這里,我們使用協議、主機名和請求URI組合作為緩存鍵。
proxy_cache_valid
指令設置緩存有效時間。例如:server {
...
location / {
...
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
...
}
}
這里,我們設置了200和302狀態碼的響應緩存時間為10分鐘,404狀態碼的響應緩存時間為1分鐘。
proxy_cache_bypass
和 proxy_no_cache
指令控制哪些請求不使用緩存。例如:server {
...
location / {
...
proxy_cache_bypass $http_cache_control;
proxy_no_cache $http_pragma;
...
}
}
這里,我們根據HTTP頭信息中的 Cache-Control
和 Pragma
字段來決定是否跳過緩存。
sudo nginx -t # 檢查配置文件語法是否正確
sudo nginx -s reload # 重新加載配置文件
以上示例展示了如何在Nginx中設置基本的緩存策略。您可以根據實際需求調整這些指令的值。