Reverse proxy

A reverse proxy accepts a request from a client, forwards it to a server that can fulfill it, and returns the server’s response to the client.
A load balancer distributes incoming client requests among a group of servers, in each case returning the response from the selected server to the appropriate client.
A reverse proxy is a web server that centralizes internal services and provides unified interfaces to the public. Requests from clients are forwarded to a server that can fulfill it before the reverse proxy returns the server's response to the client.
reverse proxy 是一个集中式的 web server,它集合了内部的 services 和 interfaces,然后由它发给 backend servers 处理。
Additional benefits include:
- Increased security - Hide information about backend servers, blacklist IPs, limit number of connections per client 
- Increased scalability and flexibility - Clients only see the reverse proxy's IP, allowing you to scale servers or change their configuration 
- SSL termination - Decrypt incoming requests and encrypt server responses so backend servers do not have to perform these potentially expensive operations - Removes the need to install X.509 certificates on each server 
 
- Compression - Compress server responses 
- Caching - Return the response for cached requests 
- Static content - Serve static content directly - HTML/CSS/JS 
- Photos 
- Videos 
- Etc 
 
Load balancer vs reverse proxy
- Deploying a load balancer is useful when you have multiple servers. Often, load balancers route traffic to a set of servers serving the same function. 
- Reverse proxies can be useful even with just one web server or application server, opening up the benefits described in the previous section. 
- Solutions such as NGINX and HAProxy can support both layer 7 reverse proxying and load balancing. 
reverse proxy 更多的是在有一个 web server 和一个 application server 的时候也有用。load balancer 是对多个,同类型的 server 有用。
Disadvantage(s): reverse proxy
- Introducing a reverse proxy results in increased complexity. 
- A single reverse proxy is a single point of failure, configuring multiple reverse proxies (ie a failover) further increases complexity. 
More read
Last updated
Was this helpful?