Nginx代理缓存配置详细说明以及案例
参考资料
Nginx代理缓存配置详细说明
启用缓存
/data/nginx/cache:缓存存储路径。levels=1:2:目录层级结构。keys_zone=my_cache:10m:定义共享内存区域,用于存储缓存键和元数据。max_size=10g:缓存最大大小。inactive=60m:缓存项在60分钟内未被访问则被删除。use_temp_path=off:禁用临时路径。在Nginx配置文件中,使用
proxy_cache_path指令定义缓存路径和参数。示例:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
配置缓存区域
my_cache:缓存区域名称,与keys_zone中定义的名称一致。使用
proxy_cache指令指定缓存区域。示例:
location / { proxy_cache my_cache; proxy_pass http://backend; }缓存键
$scheme:请求协议(http或https)。$proxy_host:代理服务器的主机名。$request_uri:请求的URI。使用
proxy_cache_key指令定义缓存键。示例:
proxy_cache_key "$scheme$proxy_host$request_uri";
缓存有效期
200 302 10m:状态码为200和302的响应缓存10分钟。404 1m:状态码为404的响应缓存1分钟。使用
proxy_cache_valid指令设置缓存的有效期。示例:
proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m;
缓存绕过
$cookie_nocache:如果请求中包含nocache的cookie,则绕过缓存。$arg_nocache:如果请求参数中包含nocache,则绕过缓存。使用
proxy_cache_bypass指令定义条件,满足条件时绕过缓存。示例:
proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
缓存清理
my_cache:缓存区域名称。"$scheme$proxy_host$1":缓存键。使用
proxy_cache_purge指令清理缓存。示例:
location ~ /purge(/.*) { proxy_cache_purge my_cache "$scheme$proxy_host$1"; }
案例
http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com;
location / {
proxy_cache my_cache;
proxy_pass http://backend;
proxy_cache_key "$scheme$proxy_host$request_uri";
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
}
location ~ /purge(/.*) {
proxy_cache_purge my_cache "$scheme$proxy_host$1";
}
}
}该配置将请求代理到
backend服务器,并使用my_cache缓存区域缓存响应。缓存键为
$scheme$proxy_host$request_uri。状态码为200和302的响应缓存10分钟,状态码为404的响应缓存1分钟。
如果请求中包含
nocache的cookie或参数,则绕过缓存。可以通过
/purge路径清理缓存。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-102.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
