Если вы когда-либо покупали веб-хостинг, вы, вероятно, замечали, что различные компании сообщают, какой веб-сервер они используют. Пожалуй, наиболее часто используемым веб-сервером является Apache, но таки часто используются и альтернативы, такие как Nginx и LiteSpeed, последний из которых в последнее время очень сильно распространился.
В этой статье мы рассмотрим предысторию этих приложений, их уникальные преимущества и недостатки и объясним, почему мы пользуемся (и любим) LiteSpeed.
Если просто, веб-сервер — это программное или аппаратное обеспечение, которое доставляет веб-страницы для клиента (браузера). На веб-сервере может размещаться один или несколько сайтов, в зависимости от конфигурации и возможностей его собственного оборудования.
Клиент — это любое устройство, которое может получить доступ к Интернету, например смартфон, смарт-часы, IP-камера, ноутбук или настольный компьютер, и запрашивать данные с веб-сервера, как правило, с помощью веб-браузера, например, Chrome или Firefox.
Веб-серверы существуют с момента появления Интернета, и технологии, которые они используют, вместе с контентом, который они обслуживают, продолжают развиваться и формировать всемирную сеть Интернет, которую мы используем сегодня. Самым первым веб-сервером была рабочая станция NeXT Computer с настройкой Ethernet в CERN в 1990 году Тимом Бернерсом Ли, которому приписывают создание и основание протоколов, из которых состоит Интернет.
Наиболее часто используемый веб-сервер — это, безусловно, HTTP-сервер Apache от компании Software Apache Foundation. Создан в 1995 году Робом МакКулом и Брайаном Белендорфом. Название представляет собой каламбур для сервера PatCHy, так как во время его создания Apache был основан на некотором существующем коде, а также на некоторых, возможно, «хакерских или костыльных» программных пакетах, позволяющих ему работать. Кроме того, название Apache было выбрано из уважения к различным индейским народам, коллективно называвшим себя Apache, которые были хорошо известны своей военной стратегией и неисчерпаемой выносливостью. По данным W3Techs, на 1 сентября 2020 года доля рынка Apache составляет около 36%.
Доминирование Apache не является простым совпадением. В значительной степени его закрепление было достигнуто благодаря тому, что Apache предустановлен во всех основных дистрибутивах Linux. Это упрощает запуск и начало работы, поскольку он уже установлен. Так же не забываем, что основной протокол, который мы используем в Интернете — HTTP — является синонимом имени процесса, под которым работает Apache в Linux — HTTPD, также известного как HTTP-демон.
Еще одним весьма популярным веб-сервером является Nginx (произносится как engine-x - "энджинкс"). Созданный Игорем Сысоевым и выпущенный в 2004 году, Nginx был создан с явной целью превзойти технологию веб-сервера Apache. В настоящее время он занимает около 32,5% рынка, и эта цифра продолжает расти.
По умолчанию обслуживая только статические файлы, Nginx потребляет гораздо меньше памяти, чем Apache, и теоретически может обрабатывать в четыре раза больше запросов в секунду. Вот почему он изначально использовался в качестве балансировщика нагрузки или реверс-прокси для загруженных веб-сайтов. По мере развития программного обеспечения и роста кодовой базы, Nginx смог полностью заменить Apache, а не просто работать вместе с ним.
Веб-сервер LiteSpeed, сокращенно LSWS, является практически новичком на «сцене» веб-серверов. За последние несколько лет он приобрел огромную, возможно, даже культовую популярность среди веб-хостинговых компаний благодаря своей эффективности. Благодаря упрощенной архитектуре компании, использующей LiteSpeed, может (теоретически) удвоить максимальную емкость веб-сайтов на своих серверах, если до этого она использовали Apache.
Представьте, что вы являетесь веб-хостинговой компанией, и у вас есть 20 серверов в вашем парке, на которых работает Apache, и на каждом сервере может размещаться 200 веб-сайтов. Это максимум 4000 веб-сайтов, под которые есть ресурсы. Затем вы знакомитесь с веб-сервером LiteSpeed, который предлагает возможность удвоить мощность вашего парка серверов, и разместить до 8000 сайтов на том же железе, просто установив приложение? Весьма заманчиво.
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) для ведения и учета бизнес процессов.
Ответить на это просто не получится. Не существует универсального решения для всех задач.
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 |
Использовалось приложение ApacheBench. Команда запуска:
command ran: ab -n 2000 -c 100 URL
Команда выше устанавливает для ApacheBench отправить 2000 запросов, с максимумом в 100 запросов запущенных одновременно.
А они говорят сами за себя. Вот результаты одного теста, запущенного на трёх веб серверах
Вот полный вывод результатов ApacheBench:
Результаты говорят сами за себя — веб-сервер LiteSpeed имеет явное и значительное преимущество в производительности по сравнению с его аналогами, и именно по этой причине мы рекомендуем его для использования как в личных целях, так и на web-хостинге для ускорения сайтов под PHP либо со статическими страницами.