我是 nginx 的新手,所以我不确定这是否可行。
然而,我正在尝试创建短的、长的、并且从不缓存以供网站使用。
我天真地尝试在我的http块中设置这些:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=short:10m;
proxy_cache short;
proxy_cache_key "short:$scheme$proxy_host$uri$is_args$args";
proxy_cache_valid 2m;
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=long:10m;
proxy_cache long;
proxy_cache_key "long:$scheme$proxy_host$uri$is_args$args";
proxy_cache_valid 1h;
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=day:10m;
proxy_cache never;
proxy_cache_key "long:$scheme$proxy_host$uri$is_args$args";
proxy_cache_valid 1d;
proxy_cache off;
Run Code Online (Sandbox Code Playgroud)
重新加载后会抛出以下错误:
[emerg]:“proxy_cache”指令重复于
如何设置不同的缓存路径以在虚拟主机之间共享?
该proxy_cache
指令的意思是“立即在该块中使用该缓存”,因此当您多次使用该指令时,nginx 无法决定使用哪个缓存并显示错误。您必须做的是删除proxy_cache
和proxy_cache_valid
指令,并在位置和/或服务器块中一次使用其中一个。
您必须知道块中禁止使用proxy_cache
和指令,因此您可能无法通过这种方式获得您想要的东西(我假设您将根据某些测试选择特定的缓存)。proxy_cache_valid
if
因此,另一种方法是在上游回复中使用特定标头。您可以使用以下标头之一来设置缓存时间:
X-Accel-Expires
Cache-Control
Expires
默认情况下,Nginx 将遵守这些标头。您可以告诉他在使用 决定缓存持续时间时忽略其中一些内容proxy_ignore_headers
。
归档时间: |
|
查看次数: |
8601 次 |
最近记录: |