跳转到主内容
极星编程网:以代码为星,赴技术山海!

Nginx中基于域名的虚拟主机配置独立proxy_cache缓存空间

在Nginx中可为不同域名配置独立proxy_cache缓存空间:需在http块定义多个proxy_cache_path并命名,server块中用proxy_cache指定对应名称,配合proxy_cache_key含$host确保键隔离,并通过响应头和缓存目录验证生效。 在 Nginx 中,为不同域名配置独立的
proxy_cache
缓存空间是完全可行的,关键在于将
proxy_cache_path
和
proxy_cache
指令合理作用于 server 级别,并配合
proxy_cache_key
的精准控制。默认情况下,Nginx 的缓存路径是全局定义的,但通过命名隔离 + key 定制,可实现逻辑上完全独立的缓存域。 为每个域名定义专属 cache_path 虽然
proxy_cache_path
必须出现在 http 块中(不能直接写在 server 里),但你可以为每个域名分配唯一的缓存路径和名称: 在
http
块中分别声明多个带不同 name 的缓存路径,例如:
proxy_cache_path /var/cache/nginx/site_a levels=1:2 keys_zone=site_a:10m max_size=1g; proxy_cache_path /var/cache/nginx/site_b levels=1:2 keys_zone=site_b:10m max_size=1g;
每个
keys_zone=xxx
名称就是后续引用的缓存标识符,互不干扰。 在 server 块中绑定对应 cache 名称 每个
server
块内使用
proxy_cache site_a
或
proxy_cache site_b
,即可将该虚拟主机所有代理请求路由到指定缓存区: Nginx 在宝塔面板中轻松管理Nginx高性能Web服务器。提供可视化配置反向代理、负载均衡、SSL证书及HTTP缓存功能,一键优化高并发性能,助您高效搭建稳定、快速的网站运行环境。 下载 确保
proxy_cache_valid
、
proxy_cache_use_stale
等也放在对应 server 内,避免继承全局配置 启用缓存需同时配置
proxy_cache
+
proxy_cache_valid
,缺一不可 用 proxy _cache_key 隔离缓存键(推荐增强) 即使缓存区已分离,仍建议显式设置
proxy_cache_key
,加入
$host
或自定义变量,防止相同 URI 在不同域名下误命中: 例如:
proxy_cache_key "$host$request_uri$is_args$args";
这样
example.com/a
和
test.com/a
会生成完全不同的缓存 key 尤其在泛解析或多租户场景下,这步能彻底避免跨站缓存污染 验证与调试技巧 确认是否生效,可通过以下方式快速验证: 检查响应头是否含
X-Cache: HIT
或
MISS
(需自行添加
add_header X-Cache $upstream_cache_status;
) 查看对应缓存目录文件数:
find /var/cache/nginx/site_a -type f | wc -l
用
nginx -t
校验配置语法,reload 后观察 error.log 是否有 cache 相关报错

相关文章