Nginx 是项目中核心的反向代理服务器,核心作用围绕 “流量管控、性能优化、高可用” 三大维度,具体分 6 个核心场景:

1. 反向代理(最核心)

  • 核心逻辑:客户端请求先到 Nginx,由 Nginx 转发到后端业务服务器(如 Tomcat / 微服务),后端服务器对客户端不可见;
  • 解决问题:隐藏后端服务 IP,避免直接暴露;统一入口,便于管控所有请求;
  • 实战场景:微服务架构中,Nginx 作为前端请求的统一入口,转发到网关(Gateway),再由网关路由到具体微服务。

2. 负载均衡

  • 核心逻辑:当后端有多台相同业务服务器时,Nginx 按预设规则(如轮询、权重、IP 哈希)将请求分发到不同服务器,分散压力;
  • 常用策略:✅ 轮询(默认):请求依次分发到各服务器;✅ 权重(weight):给性能好的服务器设更高权重,接收更多请求;✅ IP 哈希(ip_hash):同一客户端 IP 始终路由到同一服务器,解决会话保持问题;
  • 实战场景:订单服务部署 3 台实例,Nginx 按权重(2:1:1)分发请求,提升并发处理能力。

3. 静态资源托管

  • 核心逻辑:Nginx 处理静态资源(JS/CSS/ 图片 / 视频)的性能远高于 Tomcat,直接托管静态资源,减轻后端服务器压力;
  • 实战场景:前端打包后的静态文件(dist 目录)直接部署在 Nginx,请求/static/*时 Nginx 直接返回,无需转发到后端。

4. 动静分离

  • 核心逻辑:将静态请求(如图片、CSS)和动态请求(如接口)分开处理,静态请求由 Nginx 直接响应,动态请求转发到后端服务器;
  • 解决问题:减少后端服务器的非业务开销,提升整体响应速度。

5. 反向代理缓存(可选)

  • 核心逻辑:对高频只读接口(如商品详情)的响应结果做缓存,有效期内直接返回 Nginx 缓存,无需调用后端;
  • 实战场景:商品详情接口设置 5 分钟缓存,大幅降低后端服务的查询压力。

6. 高可用与限流 / 防盗链

  • 高可用:配合 Keepalived 实现 Nginx 主从切换,主节点故障时从节点自动接管,避免单点故障;
  • 限流:通过limit_req_zone限制单 IP 请求频率(如每秒 10 次),防止接口被刷;
  • 防盗链:通过valid_referers限制静态资源的引用来源,避免图片 / 视频被其他网站盗用。

总结

  • Nginx 核心价值:统一入口、优化性能、保障高可用,是分布式架构中流量管控的核心组件;
  • 实战重点:反向代理 + 负载均衡是核心,学会使用其动静分离 / 限流;
  • 在微服务场景中, Nginx 作为网关前置非常重要。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐