Nginx 配置实战

共 20 题
#

1. Nginx location 匹配规则的优先级(精确/前缀/正则)与常见配置错误案例?

A 精确匹配 > ^~ 前缀 > 正则(顺序)> 最长前缀 ✓ 正确答案
B 正则优先级最高
C 普通前缀优先于正则
D ^~ 会跳过精确匹配
#

2. Nginx 反向代理的关键配置中 proxy_pass 结尾斜杠差异、Host 头透传与超时三件套(connect/send/read)?

A proxy_pass 带 URI 会替换 location 前缀,Host 头用 proxy_set_header 透传 ✓ 正确答案
B proxy_pass 结尾斜杠无影响
C Host 头自动透传无需配置
D 超时三件套只影响建连
#

3. Nginx 反向代理的核心配置中 upstream、proxy_pass、proxy_set_header 与 keepalive 如何协同?

A keepalive 用于客户端侧
B upstream 定义后端,keepalive 复用上游连接减少建连开销 ✓ 正确答案
C proxy_pass 只能指向单个 IP
D keepalive 与 proxy_set_header 无关
#

4. try_files 与命名 location(@)在 SPA 路由回退与伪静态中的典型配置,以及内部跳转与外部跳转的区别

A @ 是外部跳转
B try_files 按序检查文件,找不到回退到 @ 或 index.html,@ 是内部跳转 ✓ 正确答案
C try_files 只能检查一个文件
D SPA 回退需返回 404
#

5. Nginx server_name 的精确/通配/正则匹配顺序与 default_server 兜底逻辑,无匹配请求如何安全处理

A 精确 > 通配 > 正则,无匹配用 default_server,可用 444 安全处理 ✓ 正确答案
B 正则优先于精确
C 无 default_server 时请求报错
D 未知 Host 应落到业务 server
#

6. Nginx rewrite 与 return 的区别及 301/302/307 跳转的选择?

A 307 会把 POST 转成 GET
B rewrite 直接返回
C 301 是临时跳转
D return 直接返回,rewrite 改写继续;永久迁移用 301,保留方法用 307 ✓ 正确答案
#

7. Nginx upstream 主动健康检查(商业版/第三方)与被动健康检查(max_fails/fail_timeout)的区别与选择

A 两者都需要商业版
B 被动实时性更好
C 主动零成本
D 被动靠 max_fails/fail_timeout 按请求失败标记,主动靠定期探针 ✓ 正确答案
#

8. Nginx 负载均衡策略(轮询/权重/ip_hash/least_conn/url_hash)的适用场景与一致性哈希扩展?

A 一致性哈希在增删时全量重排
B 轮询适合长连接
C ip_hash 按 URL 哈希
D least_conn 适合长连接,ip_hash 会话保持,hash consistent 做一致性哈希 ✓ 正确答案
#

9. Nginx 限流(limit_req/limit_conn)与安全头、TLS 终止的典型配置组合?

A burst 会降低吞吐
B limit_req 限制并发连接
C limit_req 用 zone 定义速率,burst/nodelay 控制突发,安全头与 TLS 在 server 层组合 ✓ 正确答案
D 安全头与 TLS 无关
#

10. Nginx 高并发调优中 worker_processes/worker_connections/keepalive_timeout 与文件描述符的配比?

A worker_connections 越大越好且不受 fd 限制
B worker_processes=核数,worker_rlimit_nofile 需满足连接数,keepalive_timeout 平衡 ✓ 正确答案
C worker_processes 越多越好
D keepalive_timeout 与 fd 无关
#

11. map 指令实现按变量(UA/区域/参数)映射分发与条件标头的典型用法

A 它只能映射 IP
B 它把变量值映射到结果,用于按 UA/区域做分发与条件标头 ✓ 正确答案
C 它用于日志格式
D map 结果不能用于 proxy_pass
#

12. WebSocket/SSE 长连接代理中 Upgrade/Connection 头透传、proxy_read_timeout 与 proxy_buffering off 如何配合避免断流

A WebSocket 用 HTTP/1.0
B 长连接无需调超时
C 需透传 Upgrade 头、调大 proxy_read_timeout,SSE 需 proxy_buffering off ✓ 正确答案
D 缓冲对 SSE 无影响
#

13. nginx -s reload 的平滑机制中 worker 优雅退出、配置生效过程与 reload 失败时的回退保护

A 新 worker 用新配置,旧 worker 优雅退出,配置错误时保留旧配置不中断 ✓ 正确答案
B reload 会中断所有连接
C reload 失败会停止服务
D reload 需要重启才生效
#

14. Nginx upstream 的权重与备份节点配置中 backup/down 状态在故障切换时的行为

A down 节点也接收请求
B backup 与主节点同时接管
C backup 只在主节点全不可用时接管,down 手动下线 ✓ 正确答案
D weight 控制备份切换
#

15. Nginx 动静分离与缓存(proxy_cache/open_file_cache)的配置与失效策略?

A 静态走 Nginx、动态走上游,proxy_cache 缓存响应,open_file_cache 缓存文件句柄 ✓ 正确答案
B proxy_cache 缓存文件句柄
C open_file_cache 缓存响应体
D 失效策略与 TTL 无关
#

16. Nginx 安全加固要点中隐藏版本号、限制敏感 location、防目录遍历与请求体大小限制如何配置

A server_tokens off 隐藏版本,allow/deny 限敏感路径,autoindex off 防目录遍历 ✓ 正确答案
B autoindex on 防遍历
C client_max_body_size 限制连接数
D server_tokens 显示版本
#

17. Nginx 日志排障中 access log 的 $upstream_status/$request_time 字段与 error log 级别如何配合定位 5xx

A error log 与排障无关
B $request_time 反映上游地址
C $upstream_status 反映上游状态,与 $status 对比可区分是上游还是 Nginx 出错 ✓ 正确答案
D 5xx 一定在上游
#

18. Nginx 缓存与限流的叠加场景中 proxy_cache 命中率统计与 limit_req 的 burst/nodelay 突发控制如何配置

A nodelay 让突发请求排队
B burst 会关闭缓存
C proxy_cache 降回源、limit_req 防滥用,$upstream_cache_status 统计命中率 ✓ 正确答案
D 命中率与日志无关
#

19. gzip/brotli 压缩与静态资源缓存头(expires/Cache-Control)的动静分离配置组合

A gzip 只压缩图片
B 动态资源也应长缓存
C gzip/brotli 压缩传输,expires/Cache-Control 设静态资源长缓存 ✓ 正确答案
D 缓存头与压缩无关
#

20. proxy_next_upstream 的重试触发条件与陷阱中非幂等请求重试导致重复提交如何规避

A 重试与幂等无关
B 重试对任何请求都安全
C 非幂等请求应开启所有重试
D 上游已执行但响应丢失时重试会导致非幂等操作重复提交 ✓ 正确答案