The phrase ‘reverse proxying’ refers to a configuration where a standard proxy is setup to look like a normal web server to any clients which connect to it. Therefore often the clients connect to a reverse proxy thinking it’s the destination server without realizing their request are being relayed. Remember though on the internet this term is often misused and numerous alternative definitions are used by different people.
The common standard though refers to an inverted role of a standard proxy server. With a normal proxy setup, the proxy server acts for the client – i.e. the proxy acts as an intermediary for the client making request on it’s behalf. However in the reverse proxy scenario then this is switched – as it acts as a proxy for the server instead of the client. The proxy sits in front of the web server serving requests from any client and then forwarding them on.
There’s certainly more awareness and control with using a standard proxy than a reverse proxy server. Generally a forward proxy will be specified by the clients that are using them, the server is configured for serving the needs of clients which connect through it. They are often more likely to be physically closer to the clients than a reverse proxy which will be nearer the web servers. Many organisations for example will own and configure forward proxies for their clients to use. Reverse proxies will more often be placed in server farms directly connected to the web servers they serve.
Some Common Uses of the Reverse Proxy Server
The two primary purposes of reverse proxies are probably as follows:
- replicating content to geographically dispersed locations
- replication of content to ensure load balancing
Distributing Content Efficiently to Wide Areas
Many reverse proxies are used simply to create mirrors of popular web servers. Rather than having a single web server providing content to a large spread of client requests from all over the world, duplicates can be established nearer to them. A simple example is where a company has a large internal web server, to enable efficient access from different branch offices, reverse proxies can be set up in each location. Therefore client requests can be handled by the servers at the branches instead.
Here’s a typical example –
Main Web Server – www.mycompany.com
But distributed around the world are reverse proxies which replicate this server.
- www.manchester- mycompany.com
All the replicas will be configured to receive all the content from the main server at mycompany.com. Often this will be achieved by configuring local DNS to route requests for the main sits to these branch replicas. In these circumstance you obviously need some control of the overall network topology such as DNS, IP addresses and router configurations. This means that the users will not be aware that they are being routed through the reverse proxy first. You have to remember to give the real website name a different name in the local DNS though. There are lots of different configuration options for using reverse proxies like this both using DNS and static routing tables.
Load Balancing Replication
One of the most important uses of reverse proxy servers is for load balancing of a very popular web server. This can ensure that requests from clients are distributed to multiple servers, to ensure this you would use various routing options like DNS. The main server will be the standard web server, which would continue as the master. It is here that the content would be updated not any of the proxies, this is important only the master has any role in maintaining and updating content. All the reverse proxies must be configured to get their content from the master web server.
Reverse proxies cache the content and the majority of their content will be served from this local cache.
Where Can I Buy Reverse Rotating Proxies
There are some decent commercial options if you don’t want the hassle and expense of creating your own. There’s actually often some great deals on at one of my favorite companies – Rotating Proxies where you can get bonus servers and IP addresses.