Difference between Forward Proxy and Reverse Proxy Server

Upasana | December 01, 2019 | 2 min read | 292 views


Forward Proxy Server

A proxy server is a go-between or intermediary server that forwards user requests for content from multiple clients to different server across the internet.

proxy server
Illustration image for forward proxy server

The main purpose of forward proxy server is to help users access the servers over the internet.

From a client’s perspective

Reverse Proxy Server

A reverse proxy server is a type of proxy server that typically sits behind the firewall in a private network and directs client requests to the appropriate backend server. Reverse proxy fetches content from backend server unbeknown to user and returns result as if it originated from the reverse proxy server itself. So the backend servers sitting behind reverse proxy server are not directly exposed to the clients.

reverse proxy server
Illustration image for reverse proxy server

One of the main reason of using reverse proxy server is to protect the backend servers from clients by proxying all the requests.

Common uses for reverse proxy server includes:

Load balancing

A reverse proxy server sits in front of your backend servers and distributes client requests across a group of backend servers doing load balancing to ensure that no server is overloaded. If a server goes down, it can redirect the traffic to the remaining available servers.

Web acceleration

A reverse proxy server can cache the commonly used static files in memory and serve them much faster. Also it can compress inbound and outbound data to reduce network bandwidth usage. It can also do SSL encryption to take load off of your application servers, thereby boosting the performance.

Security

Reverse proxy server can act as a guard to protect against the security attacks. If a client is making too many requests to backend servers, it can throtlle the requests as per configuration.

Examples

common examples of reverse proxy server includes nginx, apache httpd.


Top articles in this category:
  1. DevOps interview questions - Basic Concepts, Microservices, Databases, AWS
  2. Basic Unix commands for every programmer
  3. Scp send & receive files on unix
  4. Install RabbitMQ and Erlang 23 on Ubuntu 20
  5. Install Cassandra 4 on Ubuntu 20.04
  6. Install & configure Redis on Ubuntu
  7. Upgrade Jenkins on Ubuntu 18.04 LTS

Recommended books for interview preparation:

Find more on this topic:
Buy interview books

Java & Microservices interview refresher for experienced developers.