Nginx 缓存配置:实现针对特定源服务器的缓存优化

老杰君_8117

老杰君_8117

2026-06-09

527人浏览

原创

实现特定源服务器缓存优化的核心是精准隔离缓存区域、统一缓存键逻辑、按需启用/跳过策略。1. 为不同源服务器定义独立proxy_cache_path并命名专属keys_zone;2. 在location中绑定对应upstream与cache,配合proxy_no_cache和proxy_cache_bypass控制缓存边界;3. proxy_cache_key必须包含上游标识(如$upstream_addr或自定义$backend_name)以避免交叉命中;4. 动态上游场景下应使用稳定标识(如x-upstream-id或x-traffic-group)确保缓存一致性。

nginx 缓存配置:实现针对特定源服务器的缓存优化

要实现针对特定源服务器的缓存优化,核心不是“为每个后端配一套缓存”,而是通过精准隔离缓存区域、统一缓存键逻辑、按需启用/跳过策略,让 Nginx 能区分不同源服务器的响应并独立管理其缓存生命周期。

1. 为不同源服务器定义独立缓存区

避免多个 upstream 共用同一 keys_zone,否则容易因 key 冲突或过期策略混用导致缓存污染。应按源服务器语义命名并分配专属资源:

  • 在 http 块中分别声明缓存路径,例如:

proxy_cache_path /var/cache/nginx/api_cache levels=1:2 keys_zone=api_cache:128m max_size=50g inactive=30m use_temp_path=off;
proxy_cache_path /var/cache/nginx/cms_cache levels=1:2 keys_zone=cms_cache:64m max_size=20g inactive=2h use_temp_path=off;

  • 注意:keys_zone 大小需匹配预期缓存对象数量(1MB 约支持 8000 个 key),高并发 API 服务建议 ≥128m;CMS 类页面更新频次低,可适当减小。

2. 在 location 中绑定对应缓存与上游

每个 location 应明确指向一个 upstream,并启用其专属缓存区,同时控制缓存行为边界:

  • 示例:API 接口缓存(仅缓存成功响应,不缓存带用户态头的请求)

upstream api_backend { server 10.1.1.10:8080; server 10.1.1.11:8080; }
location /api/ {
  proxy_pass http://api_backend;
  proxy_cache api_cache;
  proxy_cache_valid 200 201 304 10m;
  proxy_cache_valid 404 1m;
  proxy_cache_bypass $http_cache_control $arg_nocache;
  proxy_no_cache $http_authorization $cookie_sessionid;
}

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载
  • 关键点:proxy_no_cache 阻止含敏感头或 Cookie 的请求写入缓存;proxy_cache_bypass 支持客户端主动绕过(如调试时加 ?nocache)。

3. 缓存键(proxy_cache_key)必须体现源服务器差异

若多个 upstream 返回相同 URI 但内容不同(例如 /status 返回不同集群指标),缓存键必须包含上游标识,否则会交叉命中错误内容:

  • 推荐写法(显式嵌入 upstream 名称):

proxy_cache_key "$scheme$request_method$host$uri$is_args$args$upstream_addr";

  • 更稳妥做法:用 map 提取 upstream 名(需配合 split_clients 或自定义变量),或直接在 proxy_pass 中固定 host + port 并纳入 key,例如:

set $backend_name "api_v2";
proxy_cache_key "$scheme$request_method$host$uri$is_args$args$backend_name";

  • 验证方式:用 curl -I 请求两次,检查 X-Cache-Status 是否稳定为 HIT,且响应体与对应 upstream 实际输出一致。

4. 动态源切换场景下的缓存隔离

当使用 keepalive 或动态 upstream(如基于 Consul 发现),需防止缓存键因 $upstream_addr 变动而失效频繁:

  • 方案一:改用稳定标识,例如在 upstream 定义中设置 zone 并在 key 中引用(Nginx Plus 支持,开源版需变通)
  • 方案二:在应用层返回唯一 X-Upstream-ID 响应头,再用 proxy_cache_key 引用 $upstream_http_x_upstream_id
  • 方案三:对灰度/AB 流量,在请求头中注入 group 标识(如 X-Traffic-Group: stable),并在 cache_key 中包含该值

不复杂但容易忽略

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3012

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

996

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

889

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2736

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5132

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

807

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习