Reverse proxy

What reverse proxy or reverse proxy server means.

I will start, for better understanding, to explain the difference between forward proxy (or proxy) and reverse proxy.

A forward proxy is used to access the web via a second server. So your request will be send by another server/computer on your behalf. This way you can protect your identity and increase your security.
A reverse proxy is used to protect access to an website. So when you connect to www.website.com you will not connect directly to the website server you will pass throw a reverse proxy.

For short and from the client point of view a forward proxy is a proxy that you will use to connect to a website and a reverse proxy is a proxy that you will pass through connect to that website. The website is just and example,  there are many other reason that proxy are used not only web surfing

Why to use reverse proxy?…  Well there are many reason and here a few of them:

1. To balance the load on the servers. Let’s say that you have a application or website that are hosted on more than one server and many clients. So you set up a reverse proxy so each clients will be redirect to the server that have less load and so you offer this way a better experience to your clients or visitors.

2. To help clients to pass restriction. So if you have many visitors coming from a region or a network that block access to your website or application then you can set up a reverse proxy server that all the requirements to pass the restriction and let the visitors to access the website beside the restriction.

3. Split process.  When we are talking about big website or application there are cases in witch process are split and there for managed by different servers (one web server and one mysql server )  so in this case you can use a reverse proxy server to send request to each of those servers and return the response and not locally execute the request coming from the clients.

That are only few example of what a reverse proxy is and how can be used.

Below is a list of software to be used for reverse proxy

reverse proxy software for HTTP (server side)

  • apache mod_proxy
  • squid
  • nginx (written by russians, used on hulu.com)
  • HAProxy
  • lighthttpd
  • perlbal (written for livejournal)
  • portfusion
  • pound
  • varnish cache

reverse proxy software for TCP (server side)

  • balance
  • delegate
  • pen
  • portfusion
  • pure load balancer (web site defunct)
  • python directory