Высоконагруженный веб сервер: что, как, зачем
-
7553
-
0
-
30
-
0
Все больше популярности у компаний любого размера набирает такое решение как высоконагруженный веб сервер для поддержки бизнес-процессов. Что же это такое, из чего состоит и как используется?
Высоконагруженный веб сервер (англ. high-load web server)— комплексное аппаратно-программное решение, обеспечивающее высокое быстродействие ваших продуктов и/или услуг в условиях взаимодействия с большими количествами пользователей и обработки большого количества запросов.
Достигается такое быстродействие за счет тонкой настройки ПО и правильной конфигурации используемых системных ресурсов. Такие серверы востребованы и для онлайн-игр, и для новостных порталов, и для решений в сфере аналитики и маркетинга. Из чего же состоит такой веб сервер?
Высоконагруженный веб сервер, его состав и принцип работы
Как мы уже говорили, высоконагруженный веб сервер это сложная комбинация точно настроенного программного обеспечения и аппаратной части, в которую входят такие основные компоненты:
- Фронтенд. Фронтенд веб сервера это система типа Apache или nginx, принимающая запросы пользователей на 80 или 443 порт. После приема запроса, фронтенд его обрабатывает — подключает необходимый функционал бэк-енда в зависимости от запроса, отдает статический контент, подгружает из кэша сохраненные ответы и кэширует ответы на запросы для будущего использования. Кроме того, на этапе фронтенда должна идти фильтрация запросов для выделения вредоносных, что важно для отражения DDoS-атак.Чтобы у вас работал действительно высоконагруженный сервер, требуется точная настройка фронтенда. Если же ваши конфигурационные файлы прописаны стандартно, никакого прироста производительности не будет.
- Бэк-енд. Бэк-енд веб сервера это его сердце, двигатель, выполняющий вычисления и обрабатывающий запросы от фронтенда. Он генерирует динамические страницы, производит вычисления, реализует функцию поиска в базе данных и много других задач. Чаще всего как бэк-енд выбирается PHP + MySQL, хотя для различных задач используются различные связки веб-сервера (nginx или Apache) и базы данных, такие как php_fpm или spawn-fcgi.Один из способов создать высокопроизводительный бэк-енд заключается в том, чтобы подключить две различные системы в связке. Одна из них может быть даже запущена на другом сервере, что требует добавочной тонкой конфигурации, но позволит более эффективно использовать аппаратные ресурсы.
- Кэширование. Кэширование это сохранение в оперативной памяти данных, к которым часто обращаются, чтобы не делать каждый раз запрос в базу данных. В современных высоконагруженных серверах обычно используется Memcached. Это позволяет сохранять активными результаты динамической генерации страниц и не затрачивать каждый раз на это серверные ресурсы.
- Сервер баз данных. В высоконагруженных веб серверах используются разнообразные базы данных, от MySQL и Redis до Cassandra в Facebook и Netflix. Эти базы хранят подавляющую часть данных, используемых вашим приложением и требуют большого количества оперативной памяти, так как обеспечивают возможность кэширования.
- Массивы дисков. Для обеспечения работы множества процессов требуются различные типы дисков (HDD или SSD), организованные в различные типы массивов (RAID, SAN, NAS, DAS и т.д.). Подбор правильной конфигурации дисковых массивов и разграничение выполняемых ими функций (запись/чтение или только чтение) позволяет гибко регулировать производительность вашего веб сервера. Очевидно, что применение дешевых, но малопроизводительных жестких дисков может стать узким местом, ограничивающих эффективность всей системы.
- Мониторинг. Важно постоянно контролировать состояние всех запущенных процессов, вести журналы событий и регулярно проверять их на наличие ошибок. Это позволит оперативно среагировать на сбой, устранить его, обнаружить приведшие к нему причины и постараться предотвратить или свести к минимуму возможность повторения такого события в дальнейшем.
Само собой, приведенная схема весьма приблизительна и может сильно варьироваться в зависимости от типа и структуры вашего продукта или услуги, которым нужен высоконагруженный веб сервер.
Как настроить высоконагруженный веб сервер?
Очевидно, настроить высоконагруженный веб сервер весьма непросто, и без немалого опыта сделать это с первого раза будет невозможно. Однако иногда настройка высоконагруженного веб сервера является жизненно необходимой для дальнейшего роста бизнеса операцией. В таком случае, рекомендуем не рисковать и обратиться к профессионалам. Команда IT Svit входит в топ-10 мировых поставщиков ИТ-услуг и оказывает услуги построения отказоустойчивой и высоконагруженной инфраструктуры не первый год. Обратитесь к нам, мы поможем вам достичь поставленных задач!