浏览知识库目录

计算机网络

反向代理

反向代理(Reverse Proxy)是部署在客户端和后端服务器之间的“统一入口”。

客户端并不直接访问真正的业务服务器,而是先访问反向代理,由它把请求转发给合适的后端服务器。

用户浏览器
    ↓ 请求 example.com
反向代理(Nginx)
    ↓ 转发请求
后端服务器 A / B / C
    ↓ 返回结果
反向代理
    ↓
用户浏览器

例如,一个网站有三台后端服务器:

10.0.0.11:8080
10.0.0.12:8080
10.0.0.13:8080

用户只需要访问:

https://example.com

反向代理收到请求后,可以自动选择其中一台服务器处理。用户不会知道真正的服务器地址。

简单理解:反向代理是“门卫/前台”这个岗位,Nginx 是可以担任这个岗位的具体工具。

反向代理通常有这些作用:

  • 负载均衡:把请求分配给多台服务器,避免某一台压力过大。
  • 隐藏后端服务器:外界只能看到代理服务器,不能直接访问内部服务。
  • HTTPS 处理:统一管理 SSL 证书,后端服务可以只处理普通 HTTP。
  • 缓存:缓存图片、网页或接口结果,减少后端压力。
  • 安全防护:限制访问频率、拦截异常请求、配置黑白名单。
  • 故障转移:某台后端服务器不可用时,把请求转发给其他服务器。
  • 路径转发:根据 URL 把请求交给不同服务,例如:
/api/   → API 服务
/user/  → 用户服务
/static/ → 静态文件服务

一个简单的 Nginx 反向代理配置如下:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

这表示用户访问 example.com 时,Nginx 会把请求转发给本机 8080 端口上的后端程序。

它和正向代理的区别可以简单记成:

  • 正向代理代理客户端:帮助用户访问外部网站,例如公司代理或网络代理。
  • 反向代理代理服务器:帮助网站接收请求,并把请求分配给内部服务器。

一句话概括:反向代理就是站在服务器前面的“接待员”,负责接收、分配和保护所有外部请求。