全部学科
Python全栈
python
NodeJS全栈
nodejs

Nginx 负载流量控制与灰度发布专题测试

20 题 45 分钟 难度:★★★

考察知识点

  • 健康检查机制(主动健康检查适合灰度)
  • 会话保持(基于 Cookie 最灵活)
  • 灰度发布策略(权重分割/Cookie/IP 灰度)
  • 流量控制与限流(防止过载+控制范围)
  • 限流算法(令牌桶、漏桶)
  • limit_req 配置(limit_req_zone/rate/burst)
  • 负载均衡算法与 upstream 配置
  • 会话保持与共享存储(ip_hash/sticky/Redis)
💡 参考答案在文末
单选题
1

在 Nginx 作为反向代理时,如何将客户端真实 IP 传递给后端服务器?

A

使用 proxy_set_header X-Real-IP $remote_addr;

B

使用 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

C

A 和 B 都可以

D

Nginx 不支持传递客户端真实 IP

2

要监控 Nginx 的实时性能指标(如活跃连接数、请求速率等),最简单的方式是?

A

查看 Nginx 的错误日志

B

启用 ngx_http_stub_status_module 模块,通过 HTTP 接口查看状态

C

查看 Nginx 的访问日志并手动统计

D

定期重启 Nginx 以重置计数器

3

某业务需要将新版本逐步发布给 10% 的用户,且要求同一用户在整个灰度期间始终访问同一版本。以下哪种方案最优?

A

使用 upstream 的 weight 参数设置新旧后端权重为 1:9,配合 ip_hash 实现

B

使用 split_clients 模块根据用户 IP 哈希将 10% 流量导向新版本 upstream

C

使用 map 指令配合 $cookie_user_group Cookie 将特定用户路由到新版本

D

使用 least_conn 负载均衡算法,让新版本后端自然承载约 10% 的请求

4

在构建 Nginx 高可用集群时,以下哪种架构是最常见的?

A

单台 Nginx + 单台后端服务器

B

Keepalived + 双机 Nginx(主备)+ 多台后端服务器

C

多台 Nginx 直接并列,无健康检查和故障转移

D

Nginx + 数据库集群,无后端应用服务器

5

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

A

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

B

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

C

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

D

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

6

在 Nginx 模块编译集成中,关于 --add-module 静态编译和 load_module 动态加载的区别,以下说法正确的是?

A

静态编译的模块在 Nginx 启动时加载,动态模块可以在运行时通过配置文件加载

B

动态模块不需要与 Nginx 主程序使用相同的编译选项和版本

C

使用 --add-module 编译的模块无法在运行时卸载

D

load_module 指令必须在配置文件的顶层(main 上下文)使用

7

在 Nginx 高并发场景中,以下哪个功能使用了共享内存(shared memory)?

A

proxy_cache 缓存数据存储

B

limit_req_zone 限流区域

C

access_log 日志文件

D

error_log 错误日志

8

在 Nginx 负载均衡环境中,以下哪种方式不能实现会话保持?

A

使用 ip_hash 算法

B

使用 sticky cookie 模块

C

使用 Redis 等外部存储共享 Session 数据

D

使用 round-robin 轮询算法

9

在 Nginx 中配置反向代理缓存,以下说法正确的是?

A

proxy_cache_path 指令用于定义缓存存放的路径和参数

B

proxy_cache 指令用于启用缓存并指定使用的缓存区域名称

C

proxy_cache_valid 指令用于为不同的 HTTP 状态码设置不同的缓存时间

D

以上都正确

10

以下关于 Nginx 负载均衡算法的说法,错误的是?

A

round-robin(轮询)是默认的负载均衡算法,按时间顺序逐一分配到后端服务器

B

ip_hash 根据客户端 IP 的哈希值分配,可以保证同一客户端始终分配到同一后端

C

least_conn 优先分配到当前活跃连接数最少的后端服务器

D

hash 算法只能基于客户端 IP 进行哈希计算

11

以下关于 Nginx 健康检查机制的说法,最适合用于灰度发布场景的是?

A

被动健康检查,根据请求失败情况自动标记后端不可用

B

主动健康检查,定期发送探测请求并根据响应判断后端状态

C

仅依靠 max_fails 和 fail_timeout 参数进行判断

D

不启用任何健康检查,完全依赖轮询分配

多选题
12

以下哪些 Linux 内核参数调优可以提升 Nginx 的高并发性能?

A

net.core.somaxconn 增大 TCP 连接等待队列的大小

B

net.ipv4.tcp_tw_reuse 允许重用 TIME_WAIT 状态的 TCP 连接

C

fs.file-max 增大系统级别的文件描述符上限

D

net.ipv4.ip_forward 开启 IP 转发功能

13

以下关于 Nginx 健康检查的说法,正确的有?

A

Nginx 开源版默认支持被动健康检查,根据请求失败情况自动标记后端不可用

B

max_fails 和 fail_timeout 参数可以配置被动健康检查的灵敏度

C

Nginx 开源版原生支持主动健康检查,定期发送探测请求

D

Nginx Plus 版本支持主动健康检查,定期探测后端健康状态

14

关于 Nginx 的会话保持(Session Persistence)机制,以下说法正确的有?

A

ip_hash 通过客户端 IP 哈希将同一 IP 的请求固定到同一后端,是最简单的会话保持方式

B

sticky cookie 方式由 Nginx 向后端响应中插入 Cookie,后续请求根据 Cookie 值路由到对应后端

C

基于 Cookie 的会话保持比 ip_hash 更灵活,不受 NAT 网关和代理 IP 的影响

D

ip_hash 配合 upstream 的 weight 参数可以同时实现会话保持和权重负载均衡

15

以下关于 Nginx 配置 CORS(跨域资源共享)的说法,正确的有?

A

Access-Control-Allow-Origin: * 允许任何域名跨域访问,安全性最低

B

应该指定具体的允许源域名,而不是使用通配符 *

C

Access-Control-Allow-Methods 用于指定允许的 HTTP 方法

D

CORS 配置与服务端安全性无关,只是浏览器的限制

填空题
16

在 Nginx 中配置 IP 白名单,只允许特定 IP 地址访问管理后台:

text
location /admin/ {
    ____________ 192.168.1.100;
    ____________ 10.0.0.0/8;
    ____________ all;
}

请填入正确的指令名称。(1.允许特定IP 2.允许IP段 3.拒绝所有其他IP)

17

在 Nginx 中,配置客户端连接超时参数:

  1. 使用 ____________ 设置读取客户端请求体的超时时间
  2. 使用 ____________ 设置向客户端发送响应的超时时间
  3. 使用 ____________ 设置长连接的超时时间
18

配置 Nginx upstream 负载均衡,使用 least_conn 算法,并为后端服务器设置权重:

text
____________ backend_servers {
    ____________;
    server 192.168.1.10:8080 ____________ 3;
    server 192.168.1.11:8080 weight 1;
}

请填入正确的指令名称。(1.定义 upstream 块 2.指定算法 3.设置权重)

19

配置 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.设置突发缓冲)

20

Nginx 使用 ngx_http_limit_req_module 实现请求频率限制。请填写以下三个核心参数的含义:

第一空(限流区域定义):____________
第二空(引用限流区域):____________
第三空(突发请求处理模式):____________

参考答案
1.C 2.B 3.B 4.B 5.A 6.A 7.B 8.D 9.D 10.D 11.B 12.A;B;C 13.A;B;D 14.A;B;C 15.A;B;C 16.allow;allow;deny 17.client_body_timeout;send_timeout;keepalive_timeout 18.upstream;least_conn;weight 19.limit_req_zone;rate;limit_req 20.limit_req_zone; limit_req; nodelay
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 Nginx 底层模块意图自定义模块开发专题测试
下一套试卷 → Nginx 高并发场景调优与内存参数配合专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码