A Reverse Proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers.These resources are then returned to the client as though they originated from the serverr itself. This is illustrated in the diagram below.
Reverse proxy is different from forward proxy as reverse proxy only returns resources provided by the associated servers while forward proxy returns resources accessible on the internet. This page explains further on the differences between them. It can hide the existence and characteristics of an origin server or servers.It can be used with firewall to protect against web-based attacks.
Reverse proxy seems to be a solution to my project’s problem where I have 2 servers running on a Raspberry Pi – Apache and CherryPy. Nginx (engine x) is an HTTP and reverse proxy server. It could be deployed with CherryPy as explained in this tutorial – How to Deploy Python WSGI Applications Using a CherryPy Web Server Behind Nginx.
I am left with 2 weeks to submit my FYP draft report and reverse proxy is something that I have never encountered before. I was in the dilemma of whether to pick it up and try to implement it or forgo the link between the 2 servers.
HOWEVER I suddenly realized that there is no need for a reverse proxy because i have only 1 server machine running 2 servers at different ports! 😀 Thanks to Zen from CtrlWorks.