Differences Between Forward Proxy and Reverse Proxy
There are mainly two types of proxy servers: forward proxy and reverse proxy. When people talk about proxy servers, most of the time they mean forward proxy.
Differences Between Forward Proxy and Reverse Proxy
The main difference between the two is that forward proxy is used by the client such as a web browser whereas reverse proxy is used by the server such as a web server. Forward proxy can reside in the same internal network as the client, or it can be on the Internet.
Forward Proxy
Forward proxy can be used by the client to bypass firewall restrictions in order to visit websites that are blocked by schools, governments, companies etc. If a website blocked an IP range from visiting the website, then a person in that IP range can use forward proxy to hide the real IP of the client so that person can visit the website and maybe leave some spam comments. However forward proxy might be detected by the website administrator. There are some paid proxy services that have numerous proxy systems around the world so that they can change your IP address every time your visit a new web page and this makes it harder for website administrators to detect.
Forward proxy was very useful and popular in the 1990s. Before NAT is integrated into network routers, forward proxy is the way for multiple computers in the same network to access the Internet. This type of forward proxy usually resides in the internal network.
Forward proxy can also act as a cache server in an internal network. If a resource is downloaded many times, then the proxy can cache the content on the server so next time when another computer downloads the same content, the proxy will send the content that is previously stored on the server to the computer.
There’re many different kinds of forward proxy such as web proxy, HTTP proxy, SOCKS proxy etc. Please keep in mind that using a forward proxy to browse the Internet usually slows down your overall Internet speed. That depends on the location between your computer and the forward proxy and how many people are using that forward proxy.
Another thing to be aware of is that there’re many free forward proxies that are built by hackers for malicious purposes. If you happen to be using one of these proxies, they will log every activity you do on the Internet. So free in charge is actually very costly.
Reverse Proxy
Reverse proxy is mainly used by server admins to achieve load balancing and high availability. A website may have several web servers behind the reverse proxy. The reverse proxy server takes requests from the Internet and forwards these requests to one of the back-end web servers. Most visitors don’t know websites are using reverse proxy because they usually lack the knowledge and tools to detect it or they simply don’t care about it.
Another use of a Reverse Proxy is to act as a secure portal, denying users on the internet direct access to back-end operating systems – i.e. the customer only ever talks to the proxy, the proxy talks to the back-end. Moderation based on destination URL and source IP can also be implemented with reverse proxy.
There are many reverse proxy software such as:
- Nginx can act as a web server and a reverse proxy at the same time.
- Apache can act as a web server and a reverse proxy at the same time.
- HAProxy is a well-known, feature-rich, and open-source reverse proxy software.
As Node.js become more and more popular in the web development community due to its high performance, web developers often put the built-in Node.js web server behind another web server like Nginx, so Nginx is the reverse proxy. One example is the Ghost blogging platform.
As a matter of fact, if you want to run Apache and Nginx on the same host, you can use HAProxy to achieve that. HAProxy can also act as a reverse proxy for SMTP and IMAP traffic.
Thanks for the info in relation to the real world examples.
On point differences, beating the stackoverflow thread for me.
Very useful article.
Thanks.
good
Useful, Thanks a lot!
I didn’t know about reverse proxy
Thanx for the details
can we say like this the forward proxy will hide the identity of the client machine (which is making the request) and reverse proxy will hide the identity of the server machine (which is giving the response). is it right
If you replace “identify” with “IP address”, that would be correct.
Hi xiao
So reverse proxy can hide my webserver real public ip address?
Yes, if the reverse proxy and web server are using different IP addresses.
Was very good, simple and intuitive! Thank you! 🙂
Amazing article.
how to configure Nginx and Apache to work as reverse proxy