Из этой статьи вы узнаете, что такое веб-сервер, как именно он работает, и почему стоит учитывать его при выборе хостинга для вашего онлайн-проекта.
О том, что сайт может загружаться медленно из-за плохой оптимизации знают все, а вот о таком факторе как веб-сервер почему-то забывают. И зря, потому что именно от него зависит то, как быстро будет обрабатываться статический и динамический контент вашего интернет-магазина, приложения или блога, и сколько довольных клиентов или фолловеров он приведет.
Веб-сервер также может кэшировать содержимое, чтобы ускорить воспроизведение контента, который запрашивают чаще всего. Этот процесс также известен как акселерация, или ускорение. И если выбрать веб-сервер с возможностью настройки кэша на уровне сервера, то ваш сайт будет загружаться для посетителей еще быстрее. Именно о таких веб-серверах мы сегодня и поговорим.
Содержание:
Что такое веб-сервер
Если на странице любого сайта мы зайдем в «Инструменты разработчика» (F12 в Google Chrome), то увидим, что страница состоит из определенного количества запросов. Чтобы обработать эти запросы, с нашей, клиентской, стороны работает браузер – он запросы подает, а со стороны сервера работает веб-сервер, который, собственно, на эти запросы отвечает.
Веб-сервер – это программное и аппаратное обеспечение, которое использует протокол HTTP (Hypertext Transfer Protocol) и другие протоколы для ответа на запросы клиентов, сделанные через браузер.
Основная его задача – показывать содержимое сайта, одновременно сохраняя, обрабатывая и доставляя его страницы пользователям.
Как работает веб-сервер
Схематически базовую работу веб-сервера можно изобразить так.
Слева изображена клиентская сторона, или сторона браузера. Справа – сторона сервера, где работает веб-сервер. Например, мы запрашиваем главную страницу, а веб-сервер должен отработать и вернуть нам то, что ожидается.
Внутри веб-сервера в этот момент может происходить много чего. И это «многое» можно разделить на легкие (статические) и тяжелые (динамические) запросы.
Если запрос может решаться отдачей какого-то простого файла, например, картинки, его можно назвать статическим. Из списка файлов, которые лежат в директории мы берем один конкретный файл и ничего больше не меняем. Когда мы получаем страницу, таких статических запросов может быть очень много, включая картинки, шрифты, сѕѕ, js, которые лежат на диске.
Но может случиться и так, что запрашиваемая страница тянет за собой кучу программного кода. Здесь имеем дело уже с динамическим, тяжелым запросом. Как раз в этом случае в веб-сервере выполняется немало сложных процессов – идут запросы в базу данных, высчитываются шаблоны и другие источники данных. Короче говоря, происходит обычная работа динамического сайта.
За веб-сервером у нас может быть целый блок веб-приложений, или серверов приложений. Без них ответить на динамический запрос практически невозможно.
Чем веб-сервер отличается от сервера
Сервер – это физическое центральное хранилище, где хранится информация и компьютерные программы.
Веб-сервер – это программное обеспечение, предназначенное для запуска необходимого оборудования, которое может удовлетворять запросы клиентов и доставлять им веб-страницы.
Клиент – любое устройство, которое может получить доступ к интернету, например, смартфон, умные часы, ноутбук или ПК, и запрашивать данные с веб-сервера, как правило, с помощью браузера, например, Chrome или Firefox.
Основные разновидности серверов, которые используются для доставки сайтов конечному пользователю – веб-сервер и сервер приложений.
Веб-сервер принимает и выполняет запросы от клиентов на получение статического содержимого, то есть HTML-страниц, файлов, изображений и видео, с сайта. Он обрабатывает только HTTP-запросы и ответы.
Сервер приложений предоставляет клиентам бизнес-логику, которая генерирует динамический контент. Это программный фреймворк, который преобразует данные для обеспечения специализированной функциональности. Серверы приложений улучшают интерактивные части сайта, которые могут выглядеть по-разному в зависимости от контекста запроса.
Иллюстрация ниже подчеркивает разницу в их архитектуре.
Какие разновидности веб-серверов бывают
Сегодня есть три самых популярных веб-сервера: Apache, NginX и LiteSpeed.
Apache. Это достаточно известный набор ПО с открытым исходным кодом для создания веб-сайтов и веб-приложений.
Созданный еще в 1995 году, Apache достаточно долгое время доминировал на рынке. Он предустановлен во всех основных дистрибутивах Linux, что всегда облегчало его запуск и работу.
Apache довольно сложный продукт. Имеет много модулей и потребляет значительное количество ресурсов. Чтобы обслуживать несколько клиентов, на каждое подключение создается отдельный рабочий процесс. А из-за того, что каждый из них требует определенного количества ресурсов, устанавливаются ограничения на количество соединений.
Как только количество соединений масштабируется, мы упираемся в размер оперативной памяти и тратим кучу ресурсов просто на управление большим количеством рабочих процессов.
Хотя есть в Apache и очевидно нужные штуки, такие как кэширование обратного прокси-сервера и балансировка нагрузки.
Nginx. Появился несколько позже – через 10 лет после выхода Apache и революционно предложил решение «проблемы с 10К» — смог обработать 10 000 одновременных соединений.
Работает Nginx следующим образом. Есть первый основной процесс, у него есть несколько рабочих процессов (worker-ов), их может быть один, два. Как правило, их создают по количеству ядер.
И когда возникает ситуация, когда к серверу подключается большое количество пользователей, то нам достаточно этих двух воркеров, чтобы обслужить тысячи процессов. Именно поэтому один Nginx спокойно переваривает 10К соединений.
Технология не требует постоянного нахождения процесса и он «просыпается» только тогда, когда к нему приходят данные. Получается, что запросы обрабатываются в непрерывном цикле и Nginx потребляет гораздо меньше памяти, чем Apache.
Теоретически этот веб-сервер может обрабатывать в четыре раза больше запросов в секунду, поскольку обслуживает только статические файлы. По этой причине его изначально использовали как балансировщик нагрузки или обратный прокси. А уже с развитием ПО и расширением кодовой базы Nginx смог полностью заменить Apache, а не просто работать вместе с веб-сервером.
LiteSpeed. Высокопроизводительный веб-сервер от компании LiteSpeed Technologies. Он самый молодой, однако уже успел нажить себе славу самого быстрого и наиболее экономного в плане серверных ресурсов. А именно этого часто не хватает сайтам со скачками трафика.
Благодаря тому, что пользователи хостинга на веб-сервере LiteSpeed имеют возможность устанавливать такие плагины, как LSCache, и использовать кэширование на уровне сервера, скорость загрузки сайтов становится еще больше.
С LSWS используется также серверный API, который обеспечивает очень хорошую производительность динамического контента. Это изрядно оптимизирует обмен данными между сервером и сторонними приложениями. К тому же LSAPI совместим с PHP, RUBY, PYTHON и имеет открытый исходный код.
За последние несколько лет LiteSpeed Web Server получил широкую, можно сказать даже культовую популярность среди хостинговых компаний, и все благодаря оптимизированной архитектуре, а также возможностям интуитивно понятной настройки безопасности и кэширования со стороны самого пользователя.
По результатам тестирования от LiteSpeed Technologies веб-сервер LiteSpeed обрабатывает запросы в 12 раз быстрее Nginx и в 84 раза быстрее Apache.
Какой веб-сервер выбрать
На самом деле вопрос с выбором веб-сервера решается довольно просто – вам нужно лишь выбрать компанию, которая предоставляет высокопроизводительный хостинг. Хостинг с чистым Apache сегодня уже вряд ли можно найти. Все провайдеры сейчас используют Apache + Nginx, Ngnix + phpfpm или Litespeed веб-сервер.
Ngnix подойдет для обслуживания только статики, тогда как для миксованного контента лучше будет работать связка Ngnix + php-fpm. А вот LightSpeed – технология с акцентом на масштабируемость и будет более актуальной для крупного корпоративного сектора. Кроме того, если есть возможность на сайт установить плагин Litespeed Cache, то тогда точно надо выбирать веб-сервер Litespeed.
Рассмотрим на примере украинского хостинг-провайдера HostPro.
Большинство их клиентов запускают свои сайты на PHP-приложениях, таких как WordPress или Joomla, а одним из ключевых компонентов LiteSpeed является lsphp – процесс, который обеспечивает соединение PHP-приложений с веб-сервером. LSPHP невероятно эффективно выполняет свою работу, особенно по сравнению с аналогичным процессом на Apache.
Но на нынешнем этапе развития хостинга и веб-серверов, именно LiteSpeed считается идеальным для сайтов с большим количеством посетителей или с большим количеством изображений и видео, поскольку он будет быстро загружать страницы независимо от объема трафика.
Еще одним преимуществом использования LiteSpeed является его масштабируемость – это означает, что он может легко обрабатывать большие объемы трафика и при этом не замедляться и не выходить из строя из-за перегрузки. Это делает его отличным выбором для компаний, которые хотят, чтобы их веб-сайт оставался доступным даже в часы пик или во время внезапного увеличения количества посетителей.
И напоследок несколько полезных результатов тестирования на каждом из трех веб-серверов. Первое – время ответа.
Второе – количество запросов.
В завершение
Результаты тестирования сайтов с LiteSpeed говорят сами о себе, но стоит учесть плюсы и минусы других веб-серверов для сайта.
Так, LiteSpeed предлагает самую высокую производительность при минимальных ресурсах, однако Nginx одновременно обеспечивает большую гибкость в настройке вашего сервера. И, конечно, Apache остается тоже достаточно популярным вариантом благодаря своей надежности и совместимости с различными операционными системами.
Но когда речь заходит об успехе вашего веб-сайта, скорость загрузки страниц для клиентов и посетителей действительно имеет решающее значение. А поскольку LiteSpeed имеет четкое и выразительное преимущество в производительности над конкурентами, лучше выбирать хостера, который предлагает LiteSpeed своим клиентам по умолчанию.