The name I gave my solution to a networking/software development problem.

Imagine that there are three servers on a network, server A with Apache, server B with an Application Server (processes Java-related requests), and server C with a different HTTP server that is not compatible with the Applications Server and must be used to handle processing of specific types of files.

In most cases, my standard answer would be to give them both separate IP addresses or to use a router and direct packets to the correct server for the request. The latter requires both servers to be on separate port numbers and have both run completely independently of each other.

There are issues, however, with this solution. Since the development was done in two very different technologies, both must appear to come from the same source (due to cookies) and appear to integrate seamlessly. Average browsers would accept the IP address as enough proof that both servers could access the same cookies. Netscape was not as forgiving as Microsoft, in their latest release; it believes that each port is a different server (which it is).

The remedy is simple and fairly straightforward. It also allows for easy and more accurate security monitoring and maintenance (a single point of entry).

A reverse proxy.

A proxy in a networking sense, allows computers (clients) within a local network to access an outside network, the server on the outside network receives and responds to a request from the proxy server and returns it to the computer on the internal network that requested the data. The server does not know the IP of the actual recipient, but only knows the IP of the proxy.

The reverse proxy does the opposite. For an incoming request to server A, if it is intended for the local web server, it is handled locally. If it needs to be handled by server C, server A connects to server C, passes the request, waits for a response, and transmits the response to the client. The header must be hacked off the response and the appropriate header for server A is sent to the client. Requests for server B are still handled the same way as before the implementation of the reverse proxy.

Now, to the client, server B, and server C, all believe that they are only communicating with server A.

This is different from load balancing, where communication is distributed between multiple servers to handle a greater number of requests than the single server could alone.

Log in or register to write something here or to contact authors.