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

Nginx 高并发场景调优与内存参数配合专题测试

20 题 45 分钟 难度:★★★

考察知识点

  • Nginx 缓冲区大小配置(client_body_buffer_size/proxy_buffer_size)
  • Nginx 内存池与共享内存优化(limit_req_zone 使用共享内存)
  • Nginx 与操作系统内核参数配合(worker_connections/ulimit/somaxconn 协同)
  • 内存池管理原理(ngx_pool_t)
  • 核心数据结构(ngx_str_t/ngx_array_t/ngx_list_t/ngx_hash_t)
  • 事件驱动与异步 I/O 模型
  • 高可用架构与 VRRP 自动切换
  • 系统内核参数调优(somaxconn/tcp_tw_reuse/file-max)
💡 参考答案在文末
判断题
1

在高并发场景下,Nginx 的 worker_connections 配置必须与操作系统的文件描述符限制(ulimit -n)和网络参数(如 somaxconn)配合调优,否则即使 Nginx 配置支持高并发,实际性能也会受限。()

A

B

2

Nginx 中启用 sendfile 后,可以直接将文件数据从磁盘缓冲区发送到网络socket,无需经过用户空间内存拷贝,从而显著提升静态文件传输性能。()

A

B

单选题
3

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

A

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

B

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

C

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

D

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

4

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

A

proxy_cache 缓存数据存储

B

limit_req_zone 限流区域

C

access_log 日志文件

D

error_log 错误日志

5

关于 Nginx 内存池 ngx_pool_t,以下说法正确的是?

A

每次调用 ngx_palloc 都会向操作系统申请新的内存块

B

ngx_pool_t 支持单独释放某一块通过 ngx_palloc 分配的内存

C

ngx_pool_t 中的内存只能通过销毁整个内存池来统一释放

D

ngx_pool_t 使用引用计数机制管理内存块的释放

6

在 Nginx 的 events 配置段中,worker_connections 指令的作用是?

A

指定 Nginx 启动的 Worker 进程数量

B

指定每个 Worker 进程可以同时处理的最大连接数

C

指定 Nginx 支持的最大并发连接总数

D

指定 Nginx 使用的 I/O 模型类型

7

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

A

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

B

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

C

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

D

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

8

在 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

9

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

A

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

B

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

C

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

D

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

10

在 Linux 系统上,Nginx 性能最优的事件驱动模型是?

A

select

B

poll

C

epoll

D

kqueue

11

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

A

查看 Nginx 的错误日志

B

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

C

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

D

定期重启 Nginx 以重置计数器

多选题
12

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

A

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

B

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

C

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

D

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

13

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

14

以下哪些技术可以用于优化 Nginx 的 SSL/TLS 性能?

A

启用 SSL Session 缓存(ssl_session_cache)

B

启用 SSL Session 票据(ssl_session_tickets)

C

启用 OCSP Stapling

D

禁用所有加密套件以减少计算量

15

关于 Nginx 缓冲区配置,以下说法正确的有?

A

client_body_buffer_size 配置读取客户端请求体的缓冲区大小

B

proxy_buffer_size 配置从后端服务器读取响应的首缓冲区大小

C

缓冲区越大,内存消耗越高,但能减少磁盘 I/O

D

缓冲区应该设置得越大越好,以确保性能最优

16

以下哪些配置可以防止 Nginx 泄露敏感信息?

A

autoindex off; 关闭目录浏览

B

location ~ /\. { deny all; } 禁止访问隐藏文件

C

location ~* \.(env|git|svn) { deny all; } 禁止访问敏感文件

D

server_tokens on; 显示服务器版本号

17

关于 Nginx 访问日志配置,以下说法正确的有?

A

log_format 指令用于定义自定义日志格式

B

access_log 指令只能在全局 http 段配置

C

可以在 access_log 中使用变量动态生成日志文件名

D

Nginx 默认记录的日志格式是 combined 格式

18

关于 Nginx 的事件驱动与异步 I/O 模型,以下说法正确的有?

A

Nginx 采用 Master-Worker 多进程架构,每个 Worker 进程内部使用单线程事件循环

B

Nginx 在 Linux 上默认使用 epoll 作为事件驱动机制,通过 ngx_epoll_module 实现

C

Worker 进程通过 ngx_process_events_and_timers 函数在一个循环中同时处理网络事件和定时器事件

D

当某个请求的处理涉及阻塞 I/O 操作时,Worker 进程会创建新线程来处理该请求

填空题
19

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

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

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

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

参考答案
1.正确 2.正确 3.C 4.B 5.C 6.B 7.A 8.C 9.A 10.C 11.B 12.A;B;C 13.A;B;C 14.A;B;C 15.A;B;C 16.A;B;C 17.A;C;D 18.A;B;C 19.client_body_timeout;send_timeout;keepalive_timeout 20.limit_req_zone; limit_req; nodelay
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 Nginx 负载流量控制与灰度发布专题测试
下一套试卷 → Nginx基础概念专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码