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.
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.
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:
- DevOps interview questions - Basic Concepts, Microservices, Databases, AWS
- Basic Unix commands for every programmer
- Scp send & receive files on unix
- Install RabbitMQ and Erlang 23 on Ubuntu 20
- Install Cassandra 4 on Ubuntu 20.04
- Install & configure Redis on Ubuntu
- Upgrade Jenkins on Ubuntu 18.04 LTS