З моменту випуску першого веб-сервера в 1991 році пройшов довгий шлях. Довгий час Apache був єдиним гідним згадки веб-сервером. Однак з часом стали з’являтися й інші веб-сервери з відкритим вихідним кодом.
У цьому посібнику ми розглянемо деякі з найкращих веб-серверів з відкритим вихідним кодом.
1. Apache HTTP Server
Apache HTTP Server, в просторіччі відомий як Apache або httpd у дистрибутивах на базі Red Hat, – це безкоштовний веб-сервер із відкритим вихідним кодом, розроблений Apache Software Foundation відповідно до ліцензії Apache версії 2.
Випущений 1995 року, Apache швидко виріс і став одним із найпопулярніших і найпоширеніших веб-серверів, забезпечуючи роботу понад 23,04% усіх веб-сайтів.
Apache написаний мовою C і є дуже настроюваним веб-сервером завдяки безлічі модулів, що розширюють функціональність веб-сервера.
До них належать mod_file_cache для кешування, mod_ftp для забезпечення підтримки FTP для завантаження і вивантаження файлів, mod_ssl, що дає змогу підтримувати протоколи шифрування SSL/TLS, і багато інших.
Крім того, завдяки багатому набору модулів, Apache забезпечує підтримку декількох протоколів, як-от IPv4 і IPv6, а також широко використовуваних протоколів HTTP, HTTP/2 і HTTPS.
Apache також пропонує підтримку віртуального хостингу, що дає змогу розміщувати кілька доменів або сайтів. Налаштувавши віртуальні хости, можна легко і просто розмістити на одному сервері кілька доменів без будь-яких складнощів. Ви можете мати домени example.com, example.edu, example.info тощо.
2. Nginx Web Server
Nginx – це високопродуктивний надійний веб-сервер з відкритим вихідним кодом, який також виконує функції балансувальника навантаження, зворотного проксі, проксі-сервера IMAP/POP3 і API-шлюзу.
Спочатку розроблений Ігорем Сисоєвим у 2004 році, Nginx виріс у популярності, обійшов конкурентів і став одним із найстабільніших і найнадійніших веб-серверів.
Свою популярність Nginx здобув завдяки низькому рівню використання ресурсів, масштабованості та високому паралелізму. За правильного налаштування Nginx може обробляти до 500 000 запитів на секунду за низького завантаження процесора. З цієї причини він є найоптимальнішим веб-сервером для розміщення сайтів з високою відвідуваністю і виграє в Apache.
На Nginx працюють такі популярні сайти, як LinkedIn, Adobe, Xerox, Facebook, Twitter та інші.
Nginx має невелику конфігурацію, що полегшує внесення змін, і, як і Apache, підтримує безліч протоколів, підтримку SSL/TLS, базову HTTP-аутентифікацію, віртуальний хостинг, балансування навантаження, переписування URL тощо. Наразі частка Nginx на ринку становить 33,6% від загальної кількості розміщених сайтів.
3. Lighttpd Web Server
Lighttpd – це безкоштовний веб-сервер з відкритим вихідним кодом, спеціально розроблений для додатків, критичних до швидкості роботи. На відміну від Apache і Nginx, він займає дуже мало місця (менше 1 МБ) і дуже економно витрачає ресурси сервера, наприклад, завантаження процесора.
Lighttpd, що поширюється під ліцензією BSD, працює на Linux/Unix-системах, але може бути встановлений і в Microsoft Windows. Він популярний завдяки своїй простоті, зручності налаштування, продуктивності та підтримці модулів.
Архітектура Lighttpd оптимізована для обробки великої кількості паралельних з’єднань, що дуже важливо для високопродуктивних веб-додатків. Веб-сервер підтримує FastCGI, CGI і SCGI для взаємодії програм із веб-сервером.
Він також підтримує веб-додатки, написані багатьма мовами програмування, особлива увага приділяється PHP, Python, Perl і Ruby.
Серед інших можливостей – підтримка SSL/TLS, стиснення HTTP за допомогою модуля mod_compress, віртуальний хостинг, підтримка різних модулів.
4. Apache Tomcat
Apache Tomcat – це реалізація з відкритим вихідним кодом движка сервлетів Java, мови виразів Java і сервера веб-сторінок Java. Він є ідеальним варіантом для розробників, які створюють і розгортають додатки на базі Java.
Строго кажучи, Tomcat – це не звичайний веб-сервер, такий як Nginx або Apache. Це Java-сервлет, що має розширену функціональність для взаємодії з Java-сервлетами і одночасно реалізує такі технічні специфікації, як JavaServer Pages (JSP) і Java Expression Language (Java EL).
Відмінність Tomcat від інших веб-серверів полягає в тому, що він орієнтований саме на обслуговування Java-контенту. Спочатку він був розроблений для забезпечення функціональності JSP, якої не вистачало HTTP-серверу Apache.
Ви можете використовувати Apache Tomcat разом з Apache HTTP-сервером у сценарії, коли ви працюєте з проектами, що містять як PHP, так і Java-контент. Apache HTTP-сервер може обробляти статичний і динамічний вміст, а Tomcat – JSP-функціональність.
Однак сам по собі Apache Tomcat не є повноцінним веб-сервером і не такий ефективний, як традиційні веб-сервери, такі як Nginx і Apache.
5. Caddy Web Server
Caddy, написаний мовою Go, являє собою швидкий і потужний мультиплатформний веб-сервер, який також може працювати як зворотний проксі, балансувальник навантаження і API-шлюз. Усе вбудовано і не має залежностей, що робить Caddy простим у встановленні та використанні.
За замовчуванням Caddy підтримує HTTPS і легко справляється з оновленням сертифікатів SSL/TLS. Відсутність залежностей підвищує його переносимість на різні дистрибутиви без конфліктів бібліотек.
Це ідеальний веб-сервер для запуску додатків, написаних на GO, з повною підтримкою IPv6 і HTTP/2 для забезпечення швидких HTTP-запитів. Він також підтримує віртуальний хостинг, передові технології WebSockets, перезапис і переспрямування URL-адрес, кешування та обслуговування статичних файлів зі стисненням, а також рендеринг знижених у ціні файлів.
Частка Caddy на ринку дуже мала і, за даними W3techs, становить лише 0,05%.
6. OpenLiteSpeed Web Server
OpenLiteSpeed – це веб-сервер з відкритим вихідним кодом, розроблений для забезпечення швидкості, простоти, безпеки та оптимізації. Він заснований на редакції веб-сервера LiteSpeed Enterprise і надає всі основні можливості редакції Enterprise.
Веб-сервер OpenLiteSpeed побудований на подієво-орієнтованій, ресурсномісткій архітектурі та має зручний графічний інтерфейс WebAdmin, що дає змогу керувати доменами/сайтами та відстежувати безліч показників.
Він оптимізований для виконання широкого спектра скриптів, таких як Perl, Python, Ruby і Java. OPenLiteSpeed підтримує IPv4 і IPv6 з підтримкою SSL/TLS. Він забезпечує підтримку TLS 1.0, 1.1, 1.2 і 1.3.
Також у вашому розпорядженні дроселювання смуги пропускання, інтелектуальне прискорення кешу, перевірка HTTP-запитів і контроль доступу за IP-адресою. Крім того, ви зможете скористатися високопродуктивним кешуванням сторінок і здатністю веб-сервера обробляти тисячі одночасних з’єднань.
Крім роботи в якості веб-сервера, OpenLiteSpeed може виступати в ролі балансувальника навантаження і зворотного проксі. Він безкоштовний для завантаження і доступний під ліцензією GPLv3.
7. Hiawatha Web Server
Написаний на мові C, Hiawatha являє собою легкий і безпечний веб-сервер, створений для забезпечення швидкості, безпеки та простоти використання. Його код і функції вирізняються високим ступенем захисту і здатні протистояти XSS- і SQL-ін’єкціям. Hiawatha також дає змогу контролювати роботу сервера за допомогою спеціального інструменту моніторингу.
Крім того, він простий в установці і забезпечений великою документацією, в якій ви знайдете всю необхідну інформацію. Hiawatha рекомендується для вбудованих систем або старих серверів з низькими технічними характеристиками.
8. NodeJS
Це може шокувати. Так, NodeJS – це, перш за все, кросплатформенне середовище виконання серверних завдань з відкритим вихідним кодом, що використовується для створення веб-додатків на Javascript. Однак до його складу входить модуль http, який надає набір класів і функцій, що розширюють його функціональність і дають змогу йому грати роль веб-сервера.