W
AI-Wiki
CONCEPT

反向代理

核心定义

反向代理是站在服务器侧的请求转发中间人,属于常见的服务端架构模式。用户访问服务时不会直接连接真实业务服务器,所有请求首先发送至反向代理服务器,由代理服务器转发至后端匹配的真实服务器,待真实服务器处理完成后,再由代理服务器将结果回传给用户。整个过程用户完全无感知真实服务器的数量、IP地址、部署位置等信息,全程仅与反向代理服务器交互。

通俗类比

可以用饭店场景直观理解反向代理的角色:

  • 反向代理 = 饭店服务员
  • 真实业务服务器 = 饭店后厨 用户到店消费不会直接对接后厨,仅需向服务员点餐,服务员将订单传递给后厨制作,再将做好的餐品送到用户手中,用户全程不需要了解后厨的人员配置、具体位置等信息。

正向代理的核心区别

正向代理和反向代理是最容易混淆的两类代理模式,核心差异如下:

代理类型部署位置核心作用典型场景
正向代理用户侧帮助用户访问外部资源科学上网、公司内网代理访问公网
反向代理服务器侧帮助服务器接收处理用户请求网站统一入口、负载均衡

一句话区分:正向代理是「用户找代理帮自己出去访问」,反向代理是「服务方找代理帮自己接待用户」。

核心作用

反向代理是现代互联网网站架构的必备组件,核心价值包括:

  1. 安全防护:隐藏真实服务器的公网IP,避免服务器直接暴露在公网中,降低被攻击的风险
  2. 负载均衡:按照预设规则将用户流量分发至多台后端业务服务器,提升服务整体并发承载能力
  3. 访问加速:缓存静态资源(图片、JS、CSS、静态HTML等),用户请求静态资源时无需转发到后端服务器,直接由代理返回,大幅降低响应时延
  4. 统一运维:集中配置HTTPS证书、流量限流、WAF防火墙、黑白名单等通用能力,无需每台后端服务器单独配置
  5. 端口复用:支持多个域名对应的不同站点,共用同一台服务器的80/443端口,降低公网IP资源消耗

主流实现

目前最常用的反向代理实现软件为Nginx,它是一款高性能轻量级的Web服务器兼反向代理服务器,具备超高并发承载能力、内存占用低、运行稳定、配置简单的优势,几乎被所有互联网公司采用作为反向代理组件。

基于Nginx的典型网站访问流程如下:

  1. 用户浏览器发起对www.example.com的访问,请求首先到达Nginx反向代理服务器
  2. Nginx判断请求类型:
    • 若为静态资源请求,直接返回本地缓存的静态文件
    • 若为动态接口/页面请求,转发至后端Tomcat/Java/Node.js等业务服务器处理
  3. 业务服务器处理完成后将结果返回给Nginx
  4. Nginx将最终结果回传给用户,用户全程仅感知到Nginx的存在

相关条目

  • Nginx
  • 正向代理
  • 负载均衡
  • 反向代理和Nginx通俗解释
  • HTTPS配置