全部学科
NodeJS全栈
nodejs
Python全栈
python
📝 1 篇文章 5 道配套习题

Nginx高级功能专题

专题说明

本专题聚焦Nginx的高级功能,涵盖限流算法原理与区别、limit_req限流配置、proxy_cache缓存机制、缓存清理策略以及动静内容的差异化缓存方案。

学习目标

  1. 理解令牌桶与漏桶算法的核心区别及适用场景
  2. 掌握Nginx limit_req模块的配置方法
  3. 掌握proxy_cache缓存机制的工作原理与配置要点
  4. 了解缓存清理与过期策略的多种实现方式
  5. 能够根据内容特性制定合理的缓存策略

学习内容

本专题包含以下核心知识点:

  • 限流算法:令牌桶算法允许突发流量,漏桶算法严格限制速率
  • Nginx限流配置:limit_req_zone定义区域,limit_req启用限流
  • 缓存机制:proxy_cache_path存储磁盘缓存,keys_zone存储内存元数据
  • 缓存清理:支持手动删除、PURGE请求清理、proxy_cache_valid过期
  • 动静缓存:静态内容长缓存,动态内容短缓存或不缓存

学习建议

  • 重点理解令牌桶与漏桶算法的区别,这是面试高频考点
  • limit_req配置需掌握zone、rate、burst、nodelay等参数的含义
  • 缓存部分注意区分内存元数据(keys_zone)与磁盘实际缓存数据
  • 动静缓存策略要根据内容变化频率来制定,不可本末倒置

📝 配套习题(5 题)

💡 参考答案在文末
判断题
1

对于动态内容(如用户个性化页面),应该设置较长的缓存时间以提升性能,而对于静态内容(如图片、CSS),应该设置较短的缓存时间。()

A

B

单选题
2

关于令牌桶算法和漏桶算法的区别,以下说法正确的是?

A

令牌桶算法允许一定程度的突发流量,而漏桶算法严格限制流出速率

B

漏桶算法允许突发流量,而令牌桶算法严格限制速率

C

两种算法都不允许突发流量

D

两种算法都完全允许突发流量,没有限制

3

在 Nginx 中,以下哪种方式不能用于清理 proxy_cache 缓存?

A

手动删除缓存目录下的文件

B

使用 proxy_cache_purge 指令配合 PURGE 请求方法清理特定 URL

C

重启 Nginx 服务自动清空缓存

D

设置 proxy_cache_valid 为很短的时间,让缓存快速过期

多选题
4

以下关于 Nginx proxy_cache 缓存机制的说法,正确的有?

A

proxy_cache_path 定义的 keys_zone 是存储在内存中的缓存键元数据

B

缓存文件实际存储在 proxy_cache_path 指定的磁盘路径上

C

proxy_cache_key 可以自定义缓存的键计算规则

D

Nginx 缓存不支持按 URL 参数区分缓存

填空题
5

配置 Nginx 基于 IP 的请求限流,限制每个 IP 每秒最多 10 个请求,允许突发 20 个请求:

text
____________ $binary_remote_addr zone=mylimit:10m ____________=10r/s;

location /api/ {
    ____________ zone=mylimit burst=20 nodelay;
}

请填入正确的指令名称。(1.定义限流区域 2.指定速率 3.启用限流 4.设置突发缓冲)

参考答案
1.错误 2.A 3.C 4.A;B;C 5.limit_req_zone;rate;limit_req
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 Nginx高并发调优与内存管理专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码