Lecture01-Nginx-负载均衡与反向代理概念

文章目录

    [toc]

    单词词性音标含义
    reverse proxyn./rɪˈvɜːs ˈprɒksi/反向代理(替后端服务器接客,客户端无感知)
    forward proxyn./ˈfɔːwəd ˈprɒksi/正向代理(替客户端访问目标服务器)
    load balancingn./ləʊd ˈbælənsɪŋ/负载均衡(把请求分发到多台后端,分散压力)
    upstreamn./ˈʌpstriːm/上游/后端组(一组后端服务器,按策略分发)
    backendn./ˈ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 替客户端)✅
    • 理解负载均衡与反向代理的关系(反向代理 + 多台后端分发)✅
    • 说出负载均衡的两大作用(分散压力 + 一台挂了能切换)✅
    end