A proxy server is a computer (either virtual or physical) that sits in between two computers communicating with each other, as the following figure shows.
There are many reasons for using a proxy, depending on the application. A proxy that forwards requests unmodified is called a gateway or a tunnel, and it may serve to hide one endpoint from the other. In other scenarios it may filter or throttle requests. The following figure illustrates the kind of proxy we’ll use, a reverse proxy.