What is a Reverse Proxy?
A reverse proxy is a proxy server that is installed within the neighborhood of one or more servers. Typically, reverse proxies are utilized in front of webservers. All connections coming from the Internet addressed to one of the webservers are routed through the proxy server, which may either deal with the request itself or pass the request wholly or partially to the main webserver.
What is Pound?
The Pound program is a reverse proxy, load balancer and HTTPS front-end for Web server(s). Pound was developed to enable distributing the load among several Web-servers and to allow for a convenient SSL wrapper for those Web servers that do not offer it natively. Pound is distributed under the GPL - no warranty, it's free to use, copy and give away.
Now we configure pound to proxy requests to the rails cluster we just created. We will configure pound to accept both HTTP and HTTPS traffic on ports 80 and 443 respectively. Pound will then proxy requests to the Services listed in the configuration file. Our configuration file (/usr/local/etc/pound.cfg) looks like this:
ListenHTTP Address 0.0.0.0 Port 80 Service BackEnd Address 127.0.0.1 Port 8000 End BackEnd Address 127.0.0.1 Port 8001 End BackEnd Address 127.0.0.1 Port 8002 End End End
The esiest way to start Pound is to run the following command as root:
/usr/sbin/pound -f /etc/pound.conf