logo
System Design Infrastructure

reverse proxy

reverse proxy的作用与模式

Proxy server 是 client 与 backend server 之间的中间层软件/硬件。它接收 client 请求并转发到 origin servers。常见用途包括:过滤请求、记录日志、以及修改请求(比如加/删 headers、加密/解密、compression)。

Types

Proxy 主要分两类:

Forward Proxy

Forward proxy(常被直接叫 proxy server 或 web proxy)部署在一组 client 的前面。当这些 client 访问互联网的 sites 或 services 时,proxy 会拦截请求并代表 client 与 web servers 通信。

forward-proxy

Advantages

  • Block 某些内容
  • 访问 geo-restricted 内容
  • 提供匿名性
  • 规避某些浏览限制

虽然 proxy 带来匿名性,但它仍然可能追踪用户信息。Proxy 的 setup 与维护成本不低,而且需要配置。

Reverse Proxy

Reverse proxy 位于一个或多个 web servers 之前,拦截来自 client 的请求。当 client 访问网站 origin server 时,请求会先到 reverse proxy。

Forward 与 reverse 的区别在于:forward proxy 在 client 之前,确保 origin server 不会直接与特定 client 通信;reverse proxy 在 origin server 之前,确保 client 不会直接与 origin server 通信。

reverse-proxy

引入 reverse proxy 会增加复杂度。单个 reverse proxy 是 single point of failure;配置多个 reverse proxies(例如 failover)会进一步增加复杂度。

Advantages

  • 提升 security
  • caching
  • SSL encryption
  • load balancing
  • scalability & flexibility

Load balancer vs Reverse Proxy

Reverse proxy 和 load balancer 很像吗?不完全。Load balancer 主要在多台 servers 时分发流量;reverse proxy 即使只有一台 web/app server 也很有价值。Reverse proxy 可以承担 load balancing 的角色,但反过来不一定成立。

Examples

常用 proxy 技术:

相关练习题

reverse proxy

暂无相关练习题