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:
- Server side cache
- Browser side cache
- Faster disks
- Image optimization
- Web application accelerator focusing on optimizing caching and compression
- Load balancing and SSL offloading
- 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.
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
No comments:
Post a Comment