9 Awesome Open Source Web Performance Software For Linux and Unix-like Systems

Posted on in Categories Open Source last updated May 7, 2017

Web performance is nothing but the speed in which web pages are downloaded and displayed on the user’s web browser. Faster website speeds have been shown to increase sales or increase visitor loyalty including user satisfaction. Particularly useful for those use slow internet connections or on mobile phones/tablets. You can increase the speed of page load using:

  1. Server side cache
  2. Browser side cache
  3. Faster disks
  4. Image optimization
  5. Web application accelerator focusing on optimizing caching and compression
  6. Load balancing and SSL offloading
  7. Geo or DNS-based load balancing and more.

In short, one can increase the time it takes for pages to render using multi-layered cache and asynchronous communication with server-side components. In this post, I will list my favorite open source software based TCP/HTTP load balancer and proxying solution for web performance.

Varnish – HTTP accelerator

Varnish Cache is a web application accelerator. You install it in front of any web-server that speaks HTTP and configure it to cache the contents. It act as a web application accelerator focusing on optimizing caching and compression It is really fast and used by high traffic websites such as Wikipedia, Facebook, Twitter and others. Varnish claims to delivering 20 Gbps on regular off-the-shelf hardware.

varnish-bunny
Written in: C
Operating system: BSD, Linux, Unix
Type: HTTP accelerator
License: Two-clause BSD license
Commercial support : Yes (https://www.varnish-software.com/)
Download: https://www.varnish-cache.org/

HAProxy – Load balancer and proxy server accelerator

HAProxy is an open source software based load Balancing, SSL offloading and performance optimization, compression, and general web routing software. HAProxy is used by some high-profile websites including GitHub, Reddit, and is used in the OpsWorks product from Amazon Web Services. I have seen healthy system can achieve between 15000 and 30000 hits per second, and have no trouble saturating a 2 Gbit/sec connection. HAProxy claims to delivering 10GbE load-balancing or more.

Haproxy
Written in: C
Operating system: BSD, Linux, Unix, Aix, Solaris
Type: TCP+HTTP accelerator,load balancer/proxy server
License: GPL v2
Commercial support : No
Download: http://www.haproxy.org/

Squid – Caching proxy server

Squid is an open source caching and forwarding HTTP web proxy for the web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. Squid works with both LAN and WAN based application. You can often find the LAMP setup with Squid as a web cache. A high-performance and high-availability solution for a hostile environment.

squid cache proxy server
Written in: C/C++ (squid 3)
Operating system: BSDs, Solaris, Linux, OS X, Windows
Type: Web cache and proxy server
License: GPL v2
Commercial support : No
Download: http://www.squid-cache.org/

Nginx – Reverse proxy, load balancer, HTTP cache, and web server

Nginx is an open source and free web server, which can also act as a reverse proxy, load balancer, SSL offloading, and HTTP cache. Nginx was found to be the second most widely used web server across all “active” sites on the internet. Nginx was written with an explicit goal of outperforming the Apache web server.

NGINX
Written in: C
Operating system: Linux/Unix-like/BSD/Windows
Type: Reverse proxy, load balancer and HTTP cache
License: 2-clause BSD
Commercial support : Yes (https://www.nginx.com/)
Download: http://nginx.org/

Vulcand Programmatic load balancer backed by Etcd

Vulcand is a reverse proxy for HTTP API management and microservices. It is inspired by Hystrix. It uses Etcd as a configuration backend, so changes to configuration take effect immediately without restarting the service. The software is under active development.

vulcand
Written in: Go
Operating system: Linux/Unix-like
Type: Programmatic load balancer
License: Apache v.2
Commercial support : No
Download: https://github.com/vulcand/vulcand

Træfɪk – HTTP reverse proxy and load balancer

Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file..,) to manage its configuration automatically and dynamically.

Træfɪk-architecture
Written in: Go
Operating system: Linux/Unix-like
Type: Load balancer and HTTP reverse proxy
License: MIT
Commercial support : No
Download: https://traefik.io/

relayd – Load-balancer, application layer gateway, transparent proxy, and SSL/TLS gateway.

The relayd project provides a FREE implementation of a secure web engine that consists of relayd and httpd. relayd first appeared in OpenBSD 4.1 to provide a service that helps Server Load Balancing (SLB) with OpenBSD’s Packet Filter (pf). It was written by Pierre-Yves Ritschard and Reyk Floeter. The HTTP server, httpd, first appeared in OpenBSD 5.6 and was based on the code of relayd. The development is an an ongoing effort by Reyk Floeter, Sebastian Benoit, Florian Obser and various contributing OpenBSD hackers. The software is used by some large sites and has also been ported to other operating systems.

bsd-plumbing-puffy
Written in: C
Operating system: OpenBSD/FreeBSD
Type: Load balancer, application layer gateway, transparent proxy, and SSL/TLS gateway
License: ISC license
Commercial support : Yes (https://www.esdenera.com/)
Download: http://bsd.plumbing/

Apache traffic server

Apache Traffic Server software is a fast, scalable and extensible HTTP/1.1 compliant caching proxy server. Formerly a commercial product, Yahoo! donated it to the Apache Foundation, and it is now an Apache TLP. Here’s a Traffic Server overview. This software improves network efficiency and performance by caching frequently-accessed information at the edge of the network. This brings content physically closer to end users, while enabling faster delivery and reduced bandwidth use. Traffic Server is designed to improve content delivery for enterprises, Internet service providers (ISPs), backbone providers, and large intranets by maximizing existing and available bandwidth.

Apache Traffic Server
Written in: C++
Operating system: Cross-platform
Type: Reverse proxy and forward proxy server
License: Apache License 2.0
Commercial support : No
Download: http://trafficserver.apache.org

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. Quite a few people have reported using Pound successfully in production environments. The largest volume reported to date is a site with an average of about 30M requests per day, peaking at over 600 requests/sec.

Linux install and configure pound reverse proxy for Apache http / https web server
Written in: C
Operating system: Unix-like including Linux/*BSD
Type: Reverse proxy and HTTP/HTTPS load balancer
License: GPL
Commercial support : No
Download: http://www.apsis.ch/pound/

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

3 comment

Leave a Comment