In this blog we will discuss proxy server, reverse proxy server and their differences. And we will see how load balancer is different from them.
Let’s define them one by one.
Proxy server or proxy is that server which sits before any server (e.g. application server) and provide an extra layer of security by mainly hiding the actual identity of that server (e.g. application server).
To understand the above statement, let’s take an example.
In the above example, if app server 1 (which is in private network, it can be any organization network) want to access any server on internet, then it has to go via the proxy server. That means the request which will be sent from app server 1, it has to go through the ‘proxy server’ and in that case the server on internet will see that request is coming from the proxy server, in other words that server will see the source IP of the request is the IP of the ‘proxy server’. In that way, we restrict the identity of the app server 1 to be exposed in the public world.
Reverse Proxy Server
Reverse proxy server works almost similar way as proxy server except reverse proxy server works reverse direction proxy server.
Let’s understand with an example.
In the above diagram, if the user computer which is on internet wants to access the DB server which sits in the private network (e.g. any company network), in that case the user computer will send the request/traffic to the “Reverse Proxy Server” instead of sending the request to the DB server directly. And then from “Reverse Proxy Server” the traffic is forwarded to the DB server. In this way, we are not exposing the DB server identity to the outside world.
Load balancer is such an appliance/device which is responsible for balancing the traffic load in between multiple servers. That means load balancer distributed the traffics between multiple server. The sole purpose of using a load balancer is to distribute the load between multiple servers so that any particular server does not get overloaded by traffic.
In the above diagram, for example, in the app servers we have one web application running. Here we have 3 app servers in which the same application is running. Now you can ask why we have 3 app servers where same application is running? The reason of this is, when you have only one server and if there are thousands of request comes to that server then it might crash down (because there is a limit of number of request which a web server can handle at a time), to mitigate that crashing down chance we use multiple web server and use a load balancer which can distribute the traffic load in between the multiple server.
Comparison between Proxy server & Reverse Proxy server & Load Balancer
|Proxy Server||Reverse Proxy Server||Load Balancer|
|Proxy server is a server which provide an extra layer of security by hiding the identity of the actual app server (which sits in any private network)||Reverse proxy server is a such server which sits in front of any server and all the traffic to the target server has to pass through that reverse proxy server.||Load balancer is a such appliance/device which balance the load in between multiple servers.|
|Proxy server can’t work as load balancer.||Reverse Proxy server can be used with one server or multiple server. So when it is used with multiple server it can work as load balancer, it’s our choice whether we want to use a Reverse Proxy server as a load balancer or not.||Its sole function is to distribute the load in between multiple server.|
If you are interested in learning DevOps, please have a look at the below articles, which will help you greatly.
- Kubernetes Series: Part 1 – Introduction to Kubernetes | Background of Kubernetes
- Kubernetes Series: Part 2 – Components of Kubernetes cluster | Kubernetes cluster in detail
- Kubernetes Series: Part 3 – What is Minikube and How to create a Kubernetes cluster (on Linux) using Minikube?
- Introduction to Ansible | High Level Understanding of Ansible
- What is “Monitoring” in DevOps? Why do we need to Monitor App/DB servers, Transactions etc.?
- What is End-to-End Monitoring of any web application and Why do we need it?
- DevOps Engineer or Software Developer Engineer which is better for you?- Let’s discuss