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.

Simple Setup

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

Start Pound

The esiest way to start Pound is to run the following command as root:

/usr/sbin/pound -f /etc/pound.conf