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、缓存策略 |
实战建议 | 与前后端联调紧密,注重缓存/安全配置 |