[toc]
| 单词 | 词性 | 音标 | 含义 |
|---|---|---|---|
| reverse proxy | n. | /rɪˈvɜːs ˈprɒksi/ | 反向代理(替后端服务器接客,客户端无感知) |
| forward proxy | n. | /ˈfɔːwəd ˈprɒksi/ | 正向代理(替客户端访问目标服务器) |
| load balancing | n. | /ləʊd ˈbælənsɪŋ/ | 负载均衡(把请求分发到多台后端,分散压力) |
| upstream | n. | /ˈʌpstriːm/ | 上游/后端组(一组后端服务器,按策略分发) |
| backend | n. | /ˈbækˌend/ | 后端服务器(真正处理业务的服务) |
Lecture01-Nginx-负载均衡与反向代理概念
1、本节讲什么
先用一张图建立"客户端 → Nginx → 后端服务器"的整体概念,搞清两个高频名词:反向代理和负载均衡。这一节不敲命令,只建立认知。
2、概念速览
什么是反向代理(reverse proxy):Nginx 替后端服务器"接客"。客户端只跟 Nginx 打交道,不知道背后还有一台(或多台)后端服务器。
反向代理:
客户端 ──→ Nginx ──→ 后端服务器(客户端看不到它)
对比:正向代理(forward proxy)——正好相反,代理替客户端访问目标服务器。
正向代理:
客户端 ──→ 代理服务器 ──→ 目标服务器(目标不知道客户端真实身份)
一张表分清两者:
| 维度 | 正向代理 | 反向代理 |
|---|---|---|
| 替谁干活 | 替客户端 | 替服务器 |
| 客户端感知 | 客户端配置了代理 | 客户端无感知(以为在直连后端) |
| 典型场景 | VPN、内网访问外网 | Nginx 前置、负载均衡 |
| 隐藏的是 | 客户端身份 | 后端服务器 |
什么是负载均衡(load balancing):Nginx 把请求分发到多台后端服务器,避免单台压力过大、还能在一台挂掉时把请求交给别的(高可用)。负载均衡是反向代理最典型的应用——代理 + 分发。
负载均衡:
┌─→ 后端服务器1
客户端 ─→ Nginx ─┼─→ 后端服务器2
└─→ 后端服务器3
类比(Java):反向代理像"网关"(所有请求先过它);负载均衡像"消息队列/路由"——把任务分给多个消费者,别让一个消费者累死。
正确 vs 误区:
- 反向代理 ≠ 正向代理:一个替服务器、一个替客户端,别混。
- 负载均衡不是"让 Nginx 变快",而是"把压力分散 + 挂了能切换"。
- 只有一台后端,配负载均衡也能用(那只是"反向代理"),多台才有"均衡"的意义。
3、常见疑问
- Q:反向代理和负载均衡到底啥关系? A:负载均衡是"反向代理 + 多台后端分发"。先有反向代理(代理服务器),加个 upstream(后端列表)就变成负载均衡。
- Q:前端请求
/api,Nginx 怎么知道转给谁? A:靠location+proxy_pass规则(主题 4、5 会配)。Nginx 按请求路径匹配规则,转发给对应后端。 - Q:我只有一台后端,学负载均衡有用吗? A:有用。真实公司多台后端是常态;且负载均衡配置本身(upstream)就算一台也能跑通、便于本地练习。
4、本节验证
- 分清反向代理与正向代理(替服务器 vs 替客户端)✅
- 理解负载均衡与反向代理的关系(反向代理 + 多台后端分发)✅
- 说出负载均衡的两大作用(分散压力 + 一台挂了能切换)✅