Skip to content

1)Nginx

🌱 第 1 题:Nginx 的作用和使用场景

Q1:你了解 Nginx 的核心作用吗?它常用于哪些场景?

📝 标准答案:

Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也支持邮件代理、TCP/UDP 代理。

🔧 常见使用场景:

  • 静态资源服务器(如 HTML、CSS、图片等)
  • 反向代理(转发请求至后端服务,如 Node.js、Go)
  • 负载均衡(轮询、IP 哈希、权重等策略)
  • 动静分离(前端走静态资源,动态请求走后端)
  • HTTPS 终端代理(TLS 终结)
  • 限流、防盗链、缓存

🌿 第 2 题:Nginx 反向代理的原理与配置

Q2:请解释 Nginx 是如何实现反向代理的?并写一段配置示例将请求转发到后端服务。

📝 标准答案:

Nginx 接收客户端请求,然后根据配置将请求“反向”转发到内网服务(如 localhost:8080),再将结果返回客户端。

📦 配置示例:

nginx
server {
    listen 80;
    server_name example.com;

    location /api/ {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

🌳 第 3 题:类比思维理解 Nginx

Q3:用一个生活类比解释 Nginx 的作用,帮助没有技术背景的人也能理解。

📝 类比答案:

Nginx 就像一个智能前台服务总台

  • 客户来访(用户发请求)
  • 前台(Nginx)接待,并判断客户要办哪类业务(请求 URL)
  • 然后把客户分流到相应的窗口(转发到后端服务)
  • 业务处理完后,前台把结果返回给客户(响应返回)

还能设置优先级、排队机制(限流)、人多开新窗口(负载均衡)。

🌲 第 4 题:高并发场景下 Nginx 是如何支撑的?

Q4:Nginx 为什么能在高并发场景下稳定运行?它使用的是什么并发模型?

📝 标准答案:

Nginx 使用的是异步非阻塞事件驱动模型(epoll + 多进程),不像 Apache 为每个请求创建一个线程或进程。

🔍 优势:

  • 同一个 worker 进程可同时处理上万个连接(事件驱动)
  • 减少上下文切换,降低内存占用
  • 响应快、吞吐高、资源消耗小

📌 核心点:Nginx 非阻塞 IO + master-worker 架构支撑高并发。

🪵 第 5 题:你项目中用 Nginx 解决了哪些问题?有无实战经验?

Q5:请结合你的项目经历,谈谈你在实际项目中是如何使用 Nginx 的,有没有踩过哪些坑?

📝 参考答案:

在我们的微服务架构中,Nginx 被用于前端统一入口,接收用户请求并转发到不同服务(基于 URI 区分)。我配置了负载均衡策略(ip_hash),并配合 proxy_cache 对静态数据做缓存,显著提升了首屏加载速度。

遇到的坑是前后端联调跨域问题,一开始未设置 add_header Access-Control-Allow-Origin *;,导致前端请求失败。另一个问题是 proxy_pass 后缺 / 导致路径拼接异常。

✅ 总结:Nginx 知识点速查表

分类核心点
工作模型异步非阻塞(epoll),master-worker
用途静态资源、反向代理、负载均衡、HTTPS、缓存、限流
类比智能前台、转接服务
配置要点proxy_pass、负载策略、跨域配置、gzip、缓存策略
实战建议与前后端联调紧密,注重缓存/安全配置