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

集群与高可用专题测试

20 题 50 分钟 难度:★★

考察知识点

  • Nginx 集群架构设计(Keepalived+双机主备)
  • 负载均衡算法与配置(upstream/least_conn/weight)
  • 反向代理与缓存策略(proxy_cache/no_cache/bypass)
  • 高可用性(Keepalived+VRRP 自动切换)
  • 会话保持与共享存储(ip_hash/sticky/Redis)
  • 健康检查与故障转移
  • Nginx+Tomcat 集群部署(动静分离)
  • 性能调优与监控(stub_status 模块)
💡 参考答案在文末
判断题
1

在 Nginx + Tomcat 集群部署中,Nginx 负责负载均衡和静态资源服务,Tomcat 负责处理动态请求,这种架构实现了动静分离。()

A

B

2

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

A

B

单选题
3

以下关于 Keepalived 和 VRRP 协议的说法,错误的是?

A

VRRP(Virtual Router Redundancy Protocol)用于实现路由器/服务器的冗余备份

B

Keepalived 通过 VRRP 协议在多台服务器之间浮动 VIP(虚拟 IP)

C

Keepalived 的主备切换需要人工干预才能完成

D

Keepalived 可以通过健康检查脚本检测服务状态

4

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

A

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

B

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

C

重启 Nginx 服务自动清空缓存

D

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

5

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

A

使用 ip_hash 算法

B

使用 sticky cookie 模块

C

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

D

使用 round-robin 轮询算法

6

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

A

单台 Nginx + 单台后端服务器

B

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

C

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

D

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

7

在 Nginx 中配置 HTTPS 服务时,以下哪个指令用于指定 SSL 证书文件?

A

ssl_key

B

ssl_certificate

C

ssl_cert

D

ssl_pem

8

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

A

查看 Nginx 的错误日志

B

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

C

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

D

定期重启 Nginx 以重置计数器

9

在多核 CPU 服务器上,为了提升 Nginx 的性能,可以将 Worker 进程绑定到特定的 CPU 核心上。以下关于 CPU 绑定的说法,正确的是?

A

使用 worker_cpu_affinity 指令可以配置 CPU 亲和性

B

CPU 绑定时,worker_processes 必须等于 CPU 核心数

C

自动 CPU 绑定时,可以使用 auto 参数让系统自动分配

D

CPU 绑定在任何场景下都能显著提升性能

10

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

A

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

B

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

C

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

D

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

11

在 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

12

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

A

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

B

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

C

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

D

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

13

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

A

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

B

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

C

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

D

以上都正确

14

以下关于 Nginx SSL/TLS 安全配置的说法,错误的是?

A

应该禁用 SSLv2 和 SSLv3 协议,因为它们存在已知的安全漏洞

B

ssl_protocols 指令用于指定允许的 SSL/TLS 协议版本

C

为了兼容性,应该同时启用 TLSv1 和 TLSv1.1 协议

D

ssl_ciphers 指令用于指定允许的加密套件

多选题
15

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

A

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

B

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

C

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

D

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

16

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

A

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

B

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

C

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

D

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

17

以下哪些 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 转发功能

18

以下关于 Nginx 反向代理缓存的说法,正确的有?

A

缓存可以显著减少后端服务器的负载

B

proxy_cache 可以将缓存数据存储在内存中

C

proxy_no_cache 和 proxy_cache_bypass 可以控制不缓存的条件

D

缓存对于动态内容毫无意义,不应该使用

填空题
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 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.设置权重)

参考答案
1.正确 2.错误 3.C 4.C 5.D 6.B 7.B 8.B 9.A 10.D 11.C 12.A 13.D 14.C 15.A;B;D 16.A;B;C 17.A;B;C 18.A;C 19.limit_req_zone;rate;limit_req 20.upstream;least_conn;weight
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 核心配置文件与语法专题测试
下一套试卷 → 高级功能专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码