Nginx缓存机制概览 Nginx 的缓存机制分为服务端缓存与客户端缓存两层:服务端通过模块如 proxy_cache、fastcgi_cache、uwsgi_cache、scgi_cache 将上游响应按键存入磁盘,并在后续命中时直接返回,显著降低后端负载与首字节时间(TTFB);客户端缓存则通过 Cache-Control、Expires、ETag、Last-Modified 等 HTTP 头由浏览器执行强缓存或协商缓存。服务端缓存的命中与否可通过变量 $upstream_cache_status 观测,常见取值包括 HIT、MISS、BYPASS、EXPIRED、STALE、UPDATING、REVALIDATED。
核心工作流程
关键指令与典型配置
http {
proxy_cache_path /var/cache/nginx
levels=1:2
keys_zone=my_cache:10m
max_size=10g
inactive=60m
use_temp_path=off;
server {
location / {
proxy_cache my_cache;
proxy_pass http://backend;
proxy_cache_key "$host$request_uri$is_args$args";
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_revalidate on;
proxy_cache_min_uses 3;
proxy_cache_lock on;
add_header X-Proxy-Cache $upstream_cache_status;
}
}
}
要点说明:
缓存控制与绕过
监控与最佳实践