Proxy, Reverse Proxy &Load Balancer
Proxy is a server which acts on behalf of the client and hide the information of the client from server or filter the information before pass to the actual server. Proxies are hardware or software solutions that sit between the client and the server in order to manage requests and sometimes responses
Most of us when we use company network and we cant browse everything it passes through a proxy which it filters or restricts the information, for instance, some movie sites are always restricted except some education video sites.
Restricts unwanted site
Route based on the geolocation
Reverse proxy sites infront of the actual web server or web proxy server and it hides the information of the actual server from the client. Client undersatnd that the reverse proxy is the originated place.This provides an additional level of abstraction and control to ensure the smooth flow of network traffic between clients and servers.
A reverse proxy may act either as a simple forwarding service or actively participate in the exchange between client and server. When the proxy treats the client and server as separate entities by implementing dual network stacks, it is called a full proxy.
It routes the traffic to its different proxy or server linked to this proxy either geo location-based, latency or weight based or heartbeat based.
The reverse proxy stores a copy of response locally. When the client (or any client) makes the same request, the reverse proxy can provide the response itself from the cache instead of forwarding the request to the backend server. This both decreases response time to the client and reduces the load on the backend server.
This gives the proper logging for the server, client , how many request response rate.
You can use for encryption/ decryption for request and response. Encrypting the traffic between clients and servers protects it as it crosses a public network like the Internet. By decrypting and encrypting server responses, the reverse proxy frees up resources on backend servers.
Compressing server responses before returning them to the client (for instance, with
gzip) reduces the amount of bandwidth they require, which speeds their transit over the network.
In distributed network all the incoming request coming from the client send among the group of server in which one particular server send the response to the client.Load balancers are most commonly deployed when a site needs multiple servers because the volume of requests is too much for a single server to handle efficiently.
Single point of failure
Deploying multiple servers also eliminates a single point of failure, making the website more reliable. Most commonly, the servers all host the same content, and the load balancer’s job is to distribute the workload in a way that makes the best use of each server’s capacity.
It prevents overload on any server, routes to the less crowded server or healthy server.
Some load balancers are session persistence, which means sending all requests from a particular client to the same server.