Read this knowledge-nugget if you want to know what the term Reverse Proxy means, how it works and how it can be used. Further, I am going to explain how it relates to the term Proxy Server and what a Caching Reverse Proxy is.
Most readers will know a common proxy from work or other network environments. The correct terminology is Forward Proxy. A Forward Proxy Server:
- intercepts outbound requests from users’ web browsers,
- forwards it to the target web server,
- retrieves the response, and
- passes it back on to the users’ web browser.
This is to explain the concept of a proxy server. In effect, proxy servers make hosts on the Internet transparent to the users’ workstations. The user’s workstation only “knows” about the network resources in front of but not behind a proxy server.
A Reverse Proxy Server performs the task, just the other way around. This means Reverse Proxies hide internal services in that they intercept inbound requests and distribute them on into the internal network infrastructure of an organization. This means specifically:
- intercept inbound request from the internet,
- match the URI of the request and identify the target host,
- forward the request to the target host,
- retrieve the response,
- pass the response back to the calling application.
Figure 1 illustrates a schematic reverse proxy configuration, showing the uses known to me. An organization with the URL http://www.domain.com/ hosts a number or applications. The reverse proxy has the following responsibilities:
- Make the actual locations and names of the servers transparent to the client (user), i.e. hide them.
- Forward inbound request – based on their URI – to the appropriate service.
- Shield applications hosted on the internal network from direct access out of the Internet.
- Cache the responses to inbound requests in order to improve performance and reduce load on the servers. A Reverse Proxy with caching is sometimes also called a Caching Proxy.
- Provide the hosting organization with one aspect of uniform web appearance in that all applications share the same domain name and are accessible via specific URIs.
Most commonly proxies are used in conjunction with the HTTP and FTP protocols. Depending on the proxy chosen other protocols are supported as well.
[IBMa] IBM Redbooks, 2009, “WebSphere Application Server V7: Concepts, Planning and Design”, IBM [online] available at http://www.redbooks.ibm.com/abstracts/sg247708.html
[IBMb] IBM Redbooks. 2005, “WebSphere Application Server V6 Scalability and Performance Handbook”, IBM [online] available at http://www.redbooks.ibm.com/abstracts/SG246392.html
[Wikipedia2010] Wikipedia. 2010, “Reverse proxy”, Wikipedia [online] available at http://en.wikipedia.org/wiki/Reverse_proxy
Copyright © 2010 Michael Pichler