This will be a short Reverse Proxy Caching Overview that will explain what proxy is and what is reverse proxy all about.
Normal proxy cache topology is one where the server called proxy server will be some kind of intermediate device between client and server. Proxy will receive all requests from clients and it will forward those requests to servers. The clients will think that the proxy is really the server with the content and the server will think that the Proxy is really the client asking for some resources. Proxy server is used to intercept the communication from client and evaluate the request or control the request for security reasons. On other side clients are sometimes using proxy servers to hide their identity and location because server will only see the location and IP address of proxy server and it will think that that is really the client.
We can say, normal proxy is when proxy server is proxy for clients.
In the reverse proxy, the reverse proxy server acts as a proxy for the server.
Reverse proxy is used for replication of content to different far locations and in other case for replication of content for load balancing.
In a reverse proxy cache, the proxy server is published to the internet with public IP address. When clients want to access some sources from the server, they are actually directed to published reverse proxy server. This is done by DNS resolution of a domain name, normally. This reverse proxy server appears like a web server for example. The reverse proxy then forwards the request to real server with those sources, but only the first time. The next time some client ask for the same thing, he will have that content in his cache and it will be able to respond to client without bothering the server.
In this way it will assure faster response times, higher availability, and the ability to better secure the server.
For example, it will be normal to have more reverse proxy servers on different continents for the same web server. In that way they will be closer to the clients and be able to respond with cached content faster than the real server. In case someone is trying to attack our website, it will take down only the proxy server and not the real sever.