-
Notifications
You must be signed in to change notification settings - Fork 16
Reverse Proxy
Some thoughts on creating a reverse proxy appliance server.
Requirements:
-
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.
-
Caching is desirable because we want to present good performance to the client.
-
SSL handling is needed for client logins, etc.
-
A web GUI is desirable for displaying performance and managing configuration.
-
Load balancing is not a consideration for us, but is important for a general purpose reverse proxy.
Options:
-
Squid-cache + jesred + ???
-
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:
- Nginx + SSL + Memcached
Nginx handles ssl, caching, and reverse proxy. Sometimes used as front end for Varnish to handle ssl.
-
Haproxy +
-
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:
- 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:
- https://help.ubuntu.com/community/Nginx/ReverseProxy
- http://www.cyberciti.biz/faq/howto-linux-unix-setup-nginx-ssl-proxy/
- http://www.cyberciti.biz/faq/rhel-centos-fedora-keepalived-lvs-cluster-configuration/
- http://failverse.com/setting-up-an-nginx-reverse-proxy/
- http://rtcamp.com/tutorials/optimizing-nginx-configuration/
- http://wiki.nginx.org/HttpSslModule
- http://www.howtoforge.com/how-to-set-up-nginx-as-a-reverse-proxy-for-apache2-on-ubuntu-12.04
- http://www.howtoforge.com/how-to-speed-up-drupal-7.7-with-boost-and-nginx-debian-squeeze-p3
- https://calomel.org/nginx.html Calomel Nginx + SSL + Memcached
- http://kovyrin.net/2007/08/05/using-nginx-ssi-and-memcache-to-make-your-web-applications-faster/ Homo-Adminus Blog