Сім відмінних прискорювачів сайтів для Linux і Unix

«Продуктивність веб-проектів» — це, з точки зору користувача, швидкість, з якою сторінки завантажуються і відображаються браузером. Що дає підвищення швидкості роботи якогось сайту? Насправді – багато всього. Тут і збільшення продажів, підвищення лояльності клієнтів, і поліпшення вражень користувачів від роботи з ресурсом. Швидкість, з якою веб-ресурс реагує на запити, особливо важлива для тих користувачів, які сидять на повільних каналах зв'язку або займаються веб-серфінгом зі смартфонів або планшетів.


Канали зв'язку, пристрої і браузери користувачів – на все це власник сайту вплинути не може. Серед того, що він може зробити – збільшення швидкості, з якою запрошення ззовні інформація залишає сервер. Для підвищення продуктивності веб-проектів використовують різні способи. Ось деякі з них:

  1. Кешування на стороні сервера.
  2. Кешування на стороні клієнта.
  3. Використання більш швидких дискових накопичувачів.
  4. Оптимізація зображень.
  5. Використання додатків-прискорювачів, націлених на оптимізацію кешування і стиснення даних.
  6. Балансування навантаження і розвантаження SSL.
  7. Балансування навантаження, заснована на географічних даних або відомостей DNS.
Якщо в двох словах, то зменшити час, який потрібно для виводу сторінки в браузері, можна з допомогою багаторівневої системи кешей і налагодження асинхронної роботи серверних компонентів.

У цьому матеріалі я розповім про моїх улюблених інструментах з відкритим вихідним кодом, які дозволяють прискорити роботу веб-рішень.

Varnish – HTTP-прискорювач

Varnish Cache – це прискорювач веб-додатків. Його встановлюють перед будь-яким веб-сервером, що використовує HTTP і налаштовують на кешування контенту. Varnish націлений на оптимізацію кешування і стиснення даних, що дозволяє прискорювати роботу сайтів.

Varnish – це по-справжньому швидкий інструмент. Його використовують багато високонавантажених проекти. Серед них – Wikipedia, Facebook, Twitter. Творці Varnish говорять про 20 Гбіт/с на стандартному серверному обладнанні.

HAProxy – проксі-сервер і балансувальник навантаження

HAProxy – це програмний інструмент, призначений для балансування навантаження, SSL-розвантаження, оптимізації продуктивності веб-рішень, стиснення даних, маршрутизації.

Цей проект використовується деякими всім відомими сайтами, такими, як GitHub і Reddit. Задіяний він і в OpsWorks з Amazon Web Services. Мені доводилося бачити, як HAProxy нормально тримає навантаження в 15000 – 30000 запитів в секунду і без проблем завантажує під зав'язку канал на 2 Гбіт/с. Є відомості, що HAProxy знайде чим зайняти і 10-гігабітну лінію зв'язку.

Squid – кешуючий проксі-сервер

Squid – це кешуючий проксі сервер з функціями перенаправлення HTTP-трафіку для веб-проектів, що підтримує протоколи HTTP, HTTPS, FTP та інші. Він дозволяє скоротити вимоги до смуги пропускання і поліпшити час відповіді сервера, кэшируя і повторно використовуючи часто запитувані сторінки.

Squid володіє широким набором налаштувань і є відмінним серверним прискорювачем. Він підходить і для LAN — і для WAN-проектів. Часто в комплексі серверного ПО LAMP Squid використовується для організації веб-кеша. Це високопродуктивне рішення, що забезпечує високу доступність проекту у ворожому середовищі.

Nginx – зворотний проксі-сервер, балансувальник навантаження, HTTP-кеш і веб-сервер

Nginx – це безкоштовний веб-сервер, який може виконувати ролі зворотного проксі-сервера, балансувальника навантаження, SSL-розвантажника і HTTP-кеша. Nginx визнаний другим за широтою використання веб-сервером серед усіх діючих сайтів. Nginx створювався з метою перевершити по швидкодії веб-сервер Apache

Vulcand – балансувальник навантаження

Vulcand – це зворотний проксі, націлений на прискорення роботи API і микросервисов. Натхненник цього проекту – Hystrix. В якості підсистеми конфігурування він використовує Etcd, тому зміни в налаштуваннях впливають негайно, без необхідності перезапуску служби. Проект знаходиться в стані активної розробки.

Træfɪk – зворотний HTTP-проксі і балансувальник навантаження

Træfɪk – це сучасний зворотний HTTP-проксі і балансувальник навантаження, створений для спрощення розгортання микросервисов. Для його динамічної і автоматичної настройки можна використовувати такі системи підтримки, як Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, файли.

Relayd – балансувальник навантаження, шлюз рівня додатки, прозорий проксі, SSL/TLS-шлюз

Проект relayd представляє собою безкоштовну реалізацію безпечного веб-движка, який складається з relayd і httpd.

Вперше relayd з'явився в OpenBSD 4.1, він грав роль сервісу, який допомагав організувати серверну балансування навантаження (Server Load Balancing, SLB) з допомогою фільтра пакетів (Packet Filter, pf) OpenBSD. Його написали П'єр-Ів Рішар і Рейк Флотер. HTTP-сервер, httpd, з'явився в OpenBSD 5.6 і був заснований на коді relayd. Його розробники – Рейк Флотер, Себастьян Бенуа, Флоріан Обсер і різні ентузіасти OpenBSD.

Relayd використовується деякими великими сайтами, крім того, він портований на різні операційні системи.

Підсумки
Ось, для зручності, короткі відомості про вищезазначених веб-прискорювачах з деякими додатковими відомостями про них.
Проект
Мова
ОС
Основні можливості
Ліцензія
Комерційна підтримка
Varnish
C
BSD, Linux, Unix
HTTP-прискорювач
2-clause BSD
Так
HAProxy
C
BSD, Linux, Unix, Aix, Solaris
TCP — і HTTP-прискорювач, балансувальник навантаження, проксі-сервер
GPL v2
Немає
Squid
C/C++
(Squid 3)
BSDs, Solaris, Linux, OS X, Windows
Веб-кеш і проксі-сервер
GPL v2
Немає
Nginx
C
Linux і Unix-подібні системи, BSD, Windows
Зворотний проксі-сервер, балансувальник навантаження, HTTP-кеш
2-clause BSD
Так
Vulcand
Go
Linux і Unix-подібні
Балансувальник навантаження
Apache v.2
Немає
Træfɪk
Go
Linux і Unix-подібні
Балансувальник навантаження і зворотний HTTP проксі сервер
MIT
Немає
relayd
C
OpenBSD FreeBSD та інші
Балансувальник навантаження, шлюз рівня додатки, прозорий проксі-сервера SSL/TLS шлюз
ISC
Так
Сподіваємося, ви знайдете в цій добірці що-небудь, що підходить саме вам, що дозволяє прискорити ваші веб-проекти. А якщо ваші сайти вже досягли вершин продуктивності, чекаємо розповіді про те, як ви цього досягли.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.