📜 ⬆️ ⬇️

Seven excellent site accelerators for Linux and Unix

“Web project performance” is, from the user's point of view, the speed at which pages are loaded and displayed by the browser. What gives the increase in the speed of a certain site? In fact - a lot of things. Here, and increasing sales, and increasing customer loyalty, and improving user experience from working with the resource. The speed with which a web resource responds to requests is especially important for those users who sit on slow communication channels or surf the web from smartphones or tablets.


Communication channels, devices and user browsers - the site owner cannot influence all this. Among what he can do is an increase in the speed with which the information requested from the outside leaves the server. To improve the performance of web projects using different methods. Here are some of them:

  1. Server side caching
  2. Client side caching.
  3. Use faster disk drives.
  4. Image optimization.
  5. Using accelerator applications aimed at optimizing caching and data compression.
  6. Load balancing and SSL offloading.
  7. Load balancing based on geographic data or DNS information.

In a nutshell, you can reduce the time it takes to display a page in a browser using multi-level system caches and setting up asynchronous operation of server components.
')
In this post, I’ll talk about my favorite open source tools that speed up web-based solutions.

Varnish - HTTP Accelerator



Varnish Cache is a web application accelerator. It is installed in front of any web server that uses HTTP and is configured to cache content. Varnish aims to optimize caching and data compression, which allows you to speed up the work of sites.

Varnish is a really quick tool. It is used by many high-load projects. Among them - Wikipedia, Facebook, Twitter. The creators of Varnish talk about 20 Gbps on standard server hardware.

HAProxy - proxy server and load balancer



HAProxy is a software tool designed for load balancing, SSL offloading, web performance optimization, data compression, and routing.

This project is used by some well-known sites, such as GitHub and Reddit. He is involved in OpsWorks from Amazon Web Services. I have seen how HAProxy normally holds a load of 15,000 to 30,000 requests per second and loads the 2 Gbps channel to capacity without a problem. There is evidence that HAProxy will find something to take and 10-gigabit communication line.

Squid - caching proxy server



Squid is a caching proxy server with HTTP traffic redirection features for web projects, supporting HTTP, HTTPS, FTP, and other protocols. It reduces bandwidth requirements and improves server response times by caching and reusing frequently requested pages.

Squid has a wide range of settings and is an excellent server accelerator. It is suitable for both LAN and WAN projects. Often in the complex server software LAMP Squid is used to organize web cache. This is a high-performance solution that ensures high project availability in a hostile environment.

Nginx - reverse proxy server, load balancer, HTTP cache and web server



Nginx is a free web server that can act as a reverse proxy server, load balancer, SSL unloader and HTTP cache. Nginx is recognized as the second widest web server among all existing sites. Nginx was created with the aim to surpass the Apache web server in speed

Vulcand - load balancer



Vulcand is a reverse proxy aimed at speeding up the work of the API and microservices. The inspirer of this project is Hystrix. As a configuration subsystem, it uses Etcd, so changes in settings have an effect immediately, without the need to restart the service. The project is in a state of active development.

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



Træfɪk is a modern reverse HTTP proxy and load balancer designed to simplify the deployment of microservices. For its dynamic and automatic configuration, you can use support systems such as Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, files.

Relayd - load balancer, application level gateway, transparent proxy, SSL / TLS gateway



The relayd project is a free implementation of a secure web engine that consists of relayd and httpd.

For the first time, relayd appeared in OpenBSD 4.1, it played the role of a service that helped organize server load balancing (Server Load Balancing, SLB) using an OpenBSD packet filter (Packet Filter, pf). It was written by Pierre-Yves Richard and Rake Floter. The HTTP server, httpd, appeared in OpenBSD 5.6 and was based on the relayd code. Its developers are Rake Floter, Sebastian Benoit, Florian Obsser and various OpenBSD enthusiasts.

Relayd is used by some large sites, and it is also ported to various operating systems.

Results


Here, for convenience, brief information about the above web accelerators with some additional information about them.
Project
Tongue
OS
Main features
License
Commercial support
Varny
C
BSD, Linux, Unix
HTTP accelerator
2-clause BSD
Yes
Haproxy
C
BSD, Linux, Unix, Aix, Solaris
TCP and HTTP accelerator, load balancer, proxy server
GPL v2
Not
Squid
C / C ++
(Squid 3)
BSDs, Solaris, Linux, OS X, Windows
Web cache and proxy server
GPL v2
Not
Nginx
C
Linux and Unix-like systems, BSD, Windows
Reverse Proxy, Load Balancer, HTTP Cache
2-clause BSD
Yes
Vulcand
Go
Linux and Unix-like
Load balancer
Apache v.2
Not
Træfɪk
Go
Linux and Unix-like
Load balancer and reverse HTTP proxy server
MIT
Not
relayd
C
OpenBSD FreeBSD and others
Load Balancer, Application Level Gateway, SSL / TLS Transparent Proxy Gateway
ISC
Yes

We hope you will find in this collection something suitable for you, allowing you to speed up your web projects. And if your sites have already reached the heights of performance, waiting for a story about how you achieved this.

Source: https://habr.com/ru/post/320318/


All Articles