What is reverse proxy?
Reverse proxy is a server that sits in front of one or more web servers (hosting web applications).
It intercepts requests coming from clients (user browser, mobile devices etc) to these web servers. Reverse proxy server will then send request to and receive response from web server.
How is reverse proxy different from forward proxy?
Forward proxy is the proxy server that sits in front of clients, whereas, reverse proxy is the server that sits in front of web servers.
Why do we need reverse proxy?
Here are the uses for reverse proxy:
- Load balancing
- Reverse proxy can provide a load balancing solution.
- Protection from attacks
- With a reverse proxy in place, a web server IP address is not exposed to internet, instead its reverse proxy IP address which is visible to internet. This makes it much harder for hackers to attack web-servers.
- Also all security rules can be applied or upgraded at reverse proxy only instead of each web-server.
- Global Server Load Balancing
- A website can be distributed on several servers around the globe and the reverse proxy will send clients to the server that’s geographically closest to them.
- A reverse proxy can cache content, resulting in faster performance.
- SSL encryption
- Consider website is hosted on multiple web-servers. Now, to enable SSL encryption/decryption (https protocol), one way is each web-server supports SSL. Another way to achieve it, is by setting up SSL encryption/decryption on Reverse proxy. So reverse proxy will decrypt all incoming requests and pass it to web-servers and then encrypt the response from web-server and send it to client.