1. Що таке вебсервер?

Якщо просто, вебсервер — це програмне або апаратне забезпечення, яке доставляє вебсторінки клієнту (браузеру). На вебсервері може розміщуватися один або кілька сайтів, залежно від конфігурації та можливостей його власного обладнання.


Клієнт — це будь-який пристрій, який може отримати доступ до Інтернету, наприклад смартфон, смартгодинник, IP-камера, ноутбук або настільний комп’ютер, і запитувати дані з вебсервера, як правило, за допомогою веббраузера, наприклад Chrome чи Firefox.


Вебсервери існують від самого початку Інтернету, і технології, які вони використовують, разом із вмістом, який вони обслуговують, продовжують розвиватися та формувати всесвітню мережу Інтернет, якою ми користуємося сьогодні. Найпершим вебсервером була робоча станція NeXT Computer з налаштованим Ethernet у CERN у 1990 році, створена Тімом Бернерсом-Лі, якому приписують створення й закладення основ протоколів, з яких складається Інтернет.



2. А які вебсервери найкращі?

2.1 Apache

Найчастіше використовуваний вебсервер — це, безперечно, HTTP-сервер Apache від Apache Software Foundation. Його створили у 1995 році Роб Маккул і Браян Белендорф. Назва — каламбур на тему сервера PatCHy, адже під час його створення Apache спирався на певний наявний код, а також на деякі, можливо, «хакерські або костильні» програмні пакети, які давали змогу йому працювати. Крім того, назву Apache обрали на знак поваги до різних корінних народів Америки, які колективно називали себе Apache і були добре відомі своєю військовою стратегією та невичерпною витривалістю. За даними W3Techs, станом на 1 вересня 2020 року частка Apache на ринку становить близько 36%.

Домінування Apache — не простий збіг обставин. Значною мірою його позиції закріпилися завдяки тому, що Apache попередньо встановлений у всіх основних дистрибутивах Linux. Це спрощує запуск і початок роботи, адже він уже встановлений. Також не забуваймо, що основний протокол, який ми використовуємо в Інтернеті, — HTTP — є синонімом назви процесу, під якою працює Apache у Linux: HTTPD, також відомий як HTTP-демон.


2.2 Nginx

Ще один доволі популярний вебсервер — Nginx (вимовляється як engine-x — «енджинкс»). Створений Ігорем Сисоєвим і випущений у 2004 році, Nginx був розроблений із чіткою метою перевершити технологію вебсервера Apache. Наразі він займає близько 32,5% ринку, і ця цифра продовжує зростати.

За замовчуванням обслуговуючи лише статичні файли, Nginx споживає набагато менше пам’яті, ніж Apache, і теоретично може обробляти вчетверо більше запитів за секунду. Ось чому спочатку його використовували як балансувальник навантаження або зворотний проксі для завантажених вебсайтів. У міру розвитку програмного забезпечення та зростання кодової бази Nginx зміг повністю замінити Apache, а не просто працювати разом із ним.


2.3 LiteSpeed Web Server

Вебсервер LiteSpeed, скорочено LSWS, — практично новачок на «сцені» вебсерверів. За останні кілька років він набув величезної, можливо, навіть культової популярності серед компаній вебхостингу завдяки своїй ефективності. Завдяки спрощеній архітектурі компанія, що використовує LiteSpeed, може (теоретично) подвоїти максимальну місткість вебсайтів на своїх серверах, якщо раніше вона використовувала Apache.

Уявіть, що ви — компанія вебхостингу, і у вашому парку є 20 серверів з Apache, на кожному з яких може розміщуватися 200 вебсайтів. Це максимум 4000 вебсайтів, для яких є ресурси. А тепер ви знайомитеся з вебсервером LiteSpeed, який пропонує можливість подвоїти потужність вашого серверного парку й розмістити до 8000 сайтів на тому самому обладнанні, просто встановивши програму? Досить спокусливо.


2.4 Internet Information Services від Microsoft

Microsoft Internet Information Services, або скорочено IIS. Хоча у використанні IIS немає нічого явно поганого, знайти компанію вебхостингу, яка його використовує, досить складно. По-перше, IIS працює лише на Windows Server, для якого потрібні (часто дуже дорогі) ліцензії, а багато компаній хостингу просто не хочуть витрачати на це гроші. По-друге, IIS не дуже добре підходить для програм на основі PHP, таких як WordPress. Хоча WordPress теоретично може працювати на IIS, це справжній головний біль, який може включати чаклунство й ритуальні танці, щоб просто змусити його запрацювати.

Продукт Microsoft IIS призначений для корпорацій, які досі використовують програми або вебсайти на власному коді ASP.NET, на якому працює безліч бізнес-програм. Саме у світі корпоративного бізнесу можна зустріти сервери IIS, на яких працюють ці програми, часто дуже застарілі — їм цілком можуть бути десятиліття, — або складні внутрішні портали для співробітників. IIS часто поєднують із Microsoft Sharepoint — пакетом програмного забезпечення для спільної роботи (використовується в office 365, OneDrive та інших продуктах Microsoft) — або Dynamics, програмою ERP(CRM) для ведення й обліку бізнес-процесів.


3. А в чому глобальна різниця?

Просто відповісти на це не вийде. Не існує універсального рішення для всіх завдань.  

Apache — чудовий вибір для адміністраторів і хостинг-провайдерів, яким може знадобитися щось дуже гнучке в налаштуванні, адже для нього існує величезна кількість попередньо скомпільованих модулів, які можна додавати просто на льоту. Ці модулі призначені для найрізноманітніших завдань: від підвищення безпеки чи відмовостійкості до підтримки конкретних пакетів для PHP, TCL, Python, Ruby тощо.

Apache також надійний, стабільний і вважається зручним та простим для освоєння початківцями, які встановлюють його вперше. Оскільки Apache дуже широко використовують, він часто отримує оновлення безпеки й функцій, а також має дуже велику спільноту людей, які можуть допомогти з проблемами чи запитаннями.

Крім того, є одна дуже важлива річ: Apache чудово працює з програмами, що використовують CGI. Хоча Nginx, наприклад, технічно підтримує сценарії CGI, новачкові не вдасться налаштувати його на льоту, і для більшості подібних завдань знадобиться встановлювати додаткові модулі.

Однією з особливостей Apache, яку багато хто критикує, є використання файлів .htaccess для керування такими речами, як Rewrite Rules, права доступу до файлів і каталогів та індексація пошуковими системами. Коли ці файли ввімкнено, Apache проходить усіма каталогами до батьківського й виконує команди, перелічені в кожному з файлів .htaccess. Цілком логічно, що це збільшує час відгуку й добряче навантажує ресурси сервера.

Власне, Nginx може працювати як зворотний проксі перед Apache або як самостійний вебсервер і не має еквівалентної функції для файлів .htaccess. Відомо, що програми на Python і Ruby демонструють високу продуктивність на Nginx. З балансувальниками навантаження, певною оптимізацією та Nginx створюють Hiload-програми. Але Nginx також має не надто добру репутацію складного в налаштуванні порівняно з тим самим Apache.

Порівнювати Nginx із Litespeed не зовсім чесно і загалом не дуже доречно, адже, хоч вони й схожі, обидва дуже спеціалізовані для конкретних потреб. Наприклад, Nginx дуже добре працює з програмами Ruby, тоді як LiteSpeed має кешування на рівні сервера й додаткові модулі, такі як lscasche і lsphp, що дуже допомагає пришвидшити такі програми, як WordPress, MediaWiki та Magento.

Для вебхостингу головна проблема, з якою ми стикаємося, — не блокування DDoS-атак і забезпечення безпеки наших серверів. Це легко порівняно із запобіганням збоям через те, що надто багато одночасних відвідувачів сайту споживають усі ресурси сервера, такі як оперативна пам’ять і ЦП. З Apache це загалом дуже легко, особливо на дуже завантажених вебсайтах, оскільки кожен відвідувач сайту змушує Apache відкривати на сервері новий ланцюжок процесів, і поки відвідувач перебуває на сайті, незалежно від того, чи запитував він ці ресурси, процеси висять і навантажують обладнання.

Це лише одна з багатьох причин зростання популярності LiteSpeed, особливо серед компаній, що пропонують вебхостинг. Оскільки LiteSpeed є повноцінною заміною Apache, адміністраторам не доведеться витрачати багато часу на обслуговування сервера. Він також має вбудований захист від DDoS-атак завдяки обмеженню пропускної здатності та кількості з’єднань на одного клієнта. Продукт LiteSpeed WebServer — єдиний на ринку, що повністю підтримує HTTP/3, завдяки чому клієнт-серверна архітектура працює ефективніше. Це означає, що коли веббраузер вашого користувача запитує ресурси з вашого вебсайту, як-от зображення, відео й текст, вони передаються суцільними потоками, а не частинами, і вміст надходить у міру потреби, а не одразу, як на інших вебсерверах, незалежно від того, чи був він запитаний.


А тепер бенчмарки

Для тестування використовували 3 однакові віртуальні машини з такими характеристиками:

Apache LiteSpeed Nginx
2 vCPU 2 vCPU 2 vCPU
4 GB RAM 4 GB RAM 4 GB RAM
PHP 7.4.21 PHP 7.4.21 PHP 7.4.21
cPanel / WHM cPanel / WHM cPanel / WHM
Apache 2.4.46 (cPanel) LiteSpeed/5.4.10 Enterprise nginx/1.19.2
MariaDB 10.3.25 MariaDB 10.3.25 MariaDB 10.3.25
PHP SAPI = fpm-fcgi enabled PHP SAPI = litespeed PHP SAPI = fpm-fcgi enabled

Конфігурація бенчмарку Apache

Використовували програму ApacheBench. Команда запуску:

command ran: ab -n 2000 -c 100 URL

Наведена вище команда задає для ApacheBench відправлення 2000 запитів, із максимумом у 100 запитів, запущених одночасно.  

Результати:

А вони говорять самі за себе. Ось результати одного тесту, запущеного на трьох вебсерверах

Какой вебсервер лучше: LiteSpeed vs NGINX vs Apache

Ось повний вивід результатів ApacheBench:





Наш власний висновок:

Результати говорять самі за себе — вебсервер LiteSpeed має явну й значну перевагу в продуктивності порівняно з аналогами, і саме тому ми рекомендуємо його для особистого використання, а також на вебхостингу для пришвидшення сайтів на PHP або зі статичними сторінками.