Від моменту появи першого веб-сервера минуло чимало часу. Сьогодні існує безліч цікавих альтернатив.
Різні проєкти вимагають різних підходів, але у світі веб-серверів з відкритим кодом довгий час панувала монополія. Apache тривалий час був майже єдиним варіантом, і робота з великими навантаженнями часто була складною. На щастя, ситуація змінилася, і з’явилися нові рішення, розроблені під конкретні потреби.
Давайте розглянемо деякі з найбільш якісних і популярних веб-серверів з відкритим вихідним кодом, які доступні на даний момент.
Apache
Це ім’я майже синонімічне з Всесвітньою павутиною і він досі є основою більшості веб-сайтів у світі.
Причин домінування Apache кілька: відкрита ліцензія, ранній запуск (він з’явився ще в 1995 році!) і простота розгортання PHP. Останнє стало можливим завдяки модулю mod_php, що означало, що для розробки на PHP достатньо було встановити лише Apache.
Ось що робить Apache чудовим:
- Доступність на різних платформах – Linux, Windows, MacOS та інших.
- Він є сервером за замовчуванням для всіх спільних хостингів CPanel, що значно полегшує налаштування та керування веб-сайтами.
- Величезний вибір модулів пропонує безліч функцій. Якими б специфічними не були ваші потреби, майже гарантовано знайдеться відповідний модуль для Apache.
- Можливість конфігурації кожного каталогу через файли .htaccess.
- Підтримка HTTP/2, стиснення, статичних файлів і балансування навантаження.
- Режими MPM і FastCGI для забезпечення високої паралельності.
- Просте створення скриптів за допомогою Lua.
Чи підходить вам Apache?
Якщо коротко, то так. Був період, коли Nginx (який ми розглянемо далі) здобув популярність завдяки своїй високій продуктивності, але Apache досяг аналогічних показників після випуску версії 2.2. Однак, як це часто буває з першими учасниками, Nginx привернув до себе багато уваги, тому ви можете зустріти (не завжди обґрунтовану) критику на адресу Apache.
Nginx
Якщо ви цікавитесь новими технологіями, то, напевно, чули про Nginx (вимовляється як “енджин-ікс”, звідки й назва). Він був створений у 2002 році російським інженером, якому набридла неможливість тогочасних рішень подолати проблему C10k (тобто обробки тисяч одночасних з’єднань).
Коли Nginx з’явився, він викликав такий резонанс, що багато користувачів просто перейшли з Apache і не озирнулися назад. І ця тенденція зберігається до сьогодні. Хоча зараз Apache, ймовірно, на рівних, Nginx запропонував ряд значних вдосконалень, які допомогли йому стати популярним.
- Асинхронна архітектура для обробки великих навантажень.
- Найкраща в своєму класі обробка статичних файлів, балансування навантаження та можливості зворотного проксі.
- Швидке кешування CGI.
- Підтримка uwsgi, SCGI та інших серверних протоколів з кешуванням.
- Gzipping, трансформація зображень, діапазони байтів, фрагментовані відповіді, потокова передача FLV та MKV.
- WebSockets, підтримка постійних з’єднань.
- Контроль доступу, перенаправлення помилок та інше.
Загалом, Nginx — це потужний інструмент з багатьма функціями, які дозволяють йому залишатися лідером. Оскільки компанія, що його розробляє, є стабільним бізнесом, платна підтримка та консультації доступні для складних проектів, що може бути важливим для деяких користувачів.
Чи підходить вам Nginx?
Якщо ви любите налаштовувати веб-застосунки під свої потреби, Nginx стане для вас чудовим вибором. Ви можете створювати складні і розподілені системи з потужним кешуванням, проксі-сервером і балансуванням навантаження, окрім використання Nginx для безпосереднього обслуговування статичних файлів з різними оптимізаціями.
І так, Nginx підтримує HTTP/2.
Хочете вивчити Nginx? Зверніть увагу на цей фундаментальний курс.
Caddy
Одним з найпопулярніших нових фреймворків, що привертає увагу спільноти розробників, є Caddy.
Caddy можна розглядати як веб-сервер, схожий на Nginx (схожий синтаксис і все інше), але спрощений до крайності. Наприклад, інтеграція Let’s Encrypt для SSL виконується всього за три рядки конфігурації.
Ось чому Caddy привертає багато уваги:
- HTTPS увімкнено за замовчуванням. Вам не потрібно нічого робити для встановлення або оновлення SSL сертифікатів.
- Основна увага приділяється HTTP/2.
- За замовчуванням використовуються ключі сеансу TLS. Це забезпечує набагато безпечніше керування TLS з’єднаннями, яке не є вразливим до Heartbleed.
- Немає залежностей (це бінарний файл, скомпільований на Golang, який не залежить від жодних системних бібліотек).
- Обслуговування статичних файлів відбувається в поточному каталозі за замовчуванням.
- Вбудовуваність – Caddy можна використовувати як бібліотеку в інших застосунках.
Чи підходить вам Caddy?
Якщо ви цінуєте простоту і вас лякають складні конфігурації на кшталт Apache та Nginx, Caddy може стати справжнім ковтком свіжого повітря. Тим не менш, він найкраще працює, якщо ви задоволені стандартними налаштуваннями. Наприклад, якщо ви хочете використовувати власного постачальника SSL, мати окремий каталог для статичних файлів (що майже завжди буває), переваги Caddy можуть зменшитись.
Ви можете отримати Caddy на Kamatera у вигляді віртуальної машини від 4$ на місяць.
Lighthttpd
Слабким місцем більшості сучасних веб-серверів є використання ресурсів. Lighthttpd було розроблено для розв’язання цих проблем у середовищах з обмеженими ресурсами пам’яті та ЦП.
Lighthttpd побудовано на моделі асинхронної обробки запитів, що робить його схожим на Nginx. Але є одна важлива деталь – Lighthttpd працює в одному потоці, тому, якщо у вас потужніша машина, він ігноруватиме інші ядра ЦП. Також у ньому відсутні деякі розширені функції Nginx, такі як SSL-проксі, HTTP/2 тощо.
Чи підходить вам Lighthttpd?
Lighthttpd — це ефективний однопотоковий веб-сервер, який може легко обробляти сотні запитів на секунду, не витрачаючи багато системних ресурсів. В іншому він не має особливих переваг порівняно з альтернативами. Тому, можливо, якщо вам не потрібні всі розширені функції і ви дуже обмежені в ресурсах — Lighthttpd вартий уваги.
MonkeyServer
Незважаючи на дещо дивну назву, веб-сервер Monkey є цікавим проєктом, який активно розвивається і підтримується.
Основною перевагою MonkeyServer є підтримка вбудованих платформ. Вам потрібно буде скомпілювати сервер самостійно, але ви зможете позбутися зайвих елементів і отримати легкий і швидкий веб-сервер.
- Орієнтований в основному на Linux, але також підтримується на MacOS.
- Повна підтримка процесорів на базі ARM.
- Ідеально працює на Android, Raspberry Pi та інших вбудованих платформах.
- Мінімальний час виконання (100 КБ без плагінів).
- Підтримує IPv6 і TLS.
- Працює з CGI і FastCGI.
- Базова автентифікація, правила безпеки та інше.
Чи підходить вам MonkeyServer?
Якщо ви плануєте працювати з вбудованими пристроями, MonkeyServer – майже те, що вам потрібно. Тим не менш, він однаково добре працює на архітектурах x86 і x86-64 і може використовуватися для запуску масштабних застосунків на потужних машинах. Він має активну і динамічну спільноту, що означає, що ви ніколи не залишитеся без допомоги.
OpenLiteSpeed
OpenLiteSpeed — це версія корпоративного веб-сервера з відкритим кодом від LiteSpeed Technologies.
Є багато причин, чому OpenLiteSpeed може вам сподобатись:
- Сумісний з mod_rewrite Apache, що означає, що, якщо у вас є наявні файли Apache, міграція буде мінімальною.
- Архітектура, що базується на подіях, подібна до Nginx, забезпечує високу пропускну здатність.
- Інтерфейс адміністратора на основі GUI, що забезпечує зручне налаштування.
- Свій SAPI для PHP, що забезпечує високу продуктивність.
- Кешування та оптимізація Google PageSpeedInsights застосовуються за замовчуванням.
Чи підходить вам OpenLiteSpeed?
OpenLiteSpeed добре підходить для веб-сайтів, орієнтованих на контент, оскільки оптимізація сторінок є частиною сервера. Оскільки він оптимізований для продуктивності PHP, проєкти на PHP можуть отримати значні переваги.
Cherokee
Проєкт Cherokee починався як хобі одного розробника, але переріс у пристойну веб-серверну платформу. Хоча він не має розширених функцій Nginx, він є простою, зручною та продуктивною альтернативою звичайним веб-серверам.
Найбільшою перевагою Cherokee є простота – не потрібно використовувати командний рядок для налаштування сервера. Зручний веб-інтерфейс вже є в комплекті, і ним зручно користуватися тим, хто віддає перевагу методу “вкажи і клікни” для виконання завдань.
Джерело: Linode
Хоча Cherokee не надто активно розробляється, він все ще залишається хорошим вибором для більшості щоденних проєктів. Спробуйте!
Висновок
Без веб-серверів життя не мало б сенсу, і, на щастя, сьогодні ми маємо великий вибір. Який ваш улюблений веб-сервер з відкритим кодом? Якщо ви вважаєте, що я пропустив важливий варіант, будь ласка, напишіть про це в коментарях, і я з радістю додам його! 🙂