Skip to content
Dude4Linux edited this page Jun 30, 2013 · 6 revisions

Some thoughts on creating a reverse proxy appliance server.

Requirements:

  1. External/Internal hostname mapping. In our proposed business model, clients need access to a virtual server for testing and feedback during development. We must be able to share a single external IP address with multiple external domains sharing port 80. The proxy must map authorized external hostnames to the appropriate internal hostname.

  2. Caching is desirable because we want to present good performance to the client.

  3. SSL handling is needed for client logins, etc.

  4. A web GUI is desirable for displaying performance and managing configuration.

  5. Load balancing is not a consideration for us, but is important for a general purpose reverse proxy.

Options:

  1. Squid-cache + jesred + ???

  2. Pound +

Pound is a reverse-proxy load balancing server. It supports ssl by decrypting the request and then passing it as http to a back-end server. Nginx is faster, more efficient, and more configurable. Calomel:

  1. Nginx + SSL + Memcached

Nginx handles ssl, caching, and reverse proxy. Sometimes used as front end for Varnish to handle ssl.

  1. Haproxy +

  2. Varnish + Varnish doesn't handle ssl at all. Some add Pound or Nginx for ssl but this adds complexity.

Conclusion:

Nginx seems to be the best starting point for implementing a reverse proxy, load balancing server.

Testing Performance:

  1. WebPageTest http://www.webpagetest.org/

Installing Nginx on TurnKey Core

apt-get update && apt-get upgrade && apt-get install nginx

uncomment server_names_hash_bucket_size 64; in /etc/nginx/nginx.conf

References:

Clone this wiki locally