Серверное программное обеспечение

На серверах для размещения сайтов и веб‑приложений устанавливается программное обеспечение, которое требуется для работы программной логики сайта и других служб домена, для обслуживания и мониторинга, а также для защиты от взлома и устойчивости к нагрузкам.

На виртуальных хостингах часть из этого изначально установлена, но ни существенно изменить конфигурацию, ни добавить собственные компоненты там нельзя. А на выделенных серверах (в том числе и на виртуальных — VPS) можно установить любое нужное программное обеспечение.

Серверные операционные системы

На серверах, служащих для размещения сайтов, наиболее популярны безопасные и стабильные операционные системы семейства Linux — AlmaLinux, Rocky Linux, RHEL, Debian, Ubuntu и др. Microsoft Server и BSD (FreeBSD) тоже встречаются, но значительно реже.

Прикладное серверное программное обеспечение

Веб‑серверы

Веб‑сервер — это программное обеспечение, позволяющее принимать запросы пользователей по HTTP или по HTTPS, обрабатывать их и отправлять пользователям результаты обработки (html-страницы и другие файлы). Наиболее популярные веб‑серверы — это Nginx и Apache, значительно менее распространен Microsoft IIS. Иногда с целью увеличения производительности устанавливается два веб‑сервера: быстрый Nginx, который отдаёт пользователям «статику» (физически существующие на сервере документы, не требующие обработки перед отправкой), а остальные запросы переадресовывает серверу приложений (Apache, например), который занимается генерацией динамических документов. Существуют и другие производительные связки (Nginx + FastCGI, например), о рациональности использования той или иной реализации лучше проконсультироваться с разработчиками приложения и администраторами серверов.

Интерпретаторы языков программирования и серверы приложений

Интерпретатор языка программирования. Компонент, который нужен для исполнения программного кода на сервере. Для каждого серверного языка программирования (например, для PHP, Ruby, Python) нужен свой интерпретатор, также интерпретаторы версионируются и могут иметь расширения. Размещаемое на сервере ПО (например, плаформы для разработки сайтов: CMS или фреймворки) требовательно как к версии интерпретатора, так и к списку установленных расширений. Список требований приложения можно получить у разработчика или поставщика программного продукта.

Cерверы приложений — это программная платформа, предназначенная для запуска приложения с использованием интерпретатора. Обычно сервер приложений похож на веб‑сервер, с той лишь разницей, что в процессе обработки запроса производится не раздача существующих файлов, а выполнение программного кода приложения и генерация динамических страниц.

Системы управления базами данных

СУБД — системы управления базами данных: MySQL, MariaDB, PostgreSQL и т.д.

СУБД позволяют создавать базы данных и манипулировать данными в них — добавлять, обновлять, удалять и находить какую‑либо информацию. СУБД обеспечивает надёжность хранения, целостность данных, безопасность, а также предоставляет средства для администрирования. СУБД бывают реляционные (SQL) и нереляционные (NoSQL) — мексимально упрощённо: реляционные СУБД обеспечивают надёжность, а NoSQL — высокую скорость работы.

Поисковые движки

Поисковые системы — например, ElasticSearch или Sphinx — позволяют осуществлять поиск и фильтрацию быстрее, нежели это возможно с использованием реляционных СУБД.

FTP‑серверы и SSH / SFTP

FTP‑сервер позволяет получать доступ к файлам, расположенным на сервере по протоколу FTP(S). Как правило, используется для администрирования сайта (как для обновления программного кода приложения, так и для загрузки объёмных файлов, которые нельзя загрузить через админку). Более безопасной альтернативой FTP является SFTP, протокол базирующийся на SSH и позволяющий шифровать передаваемые и получаемые данные.

Кеширующие серверы

Кеширующие серверы — системы, «запоминающие» результат обработки запросов и использующие эти данные при повторных обращениях для ускорения генерации страниц. Наиболее популярные кэширующие механизмы — Redis и Memcached.

Системы для информационной безопасности

ПО для обеспечения информационной безопасности — от обычных брандмауэров (что обязательно) до автоматизированных систем обнаружения и предотвращения вторжений.

Софт для резервного копирования — бэкапы должны создаваться регулярно и автоматически, а также хранится не на том же сервере, где расположены «боевые данные».

Балансировщики

Балансировщики нагрузки — обычно это веб‑серверы, которые проксируют обращения клиентов на разные узлы, занимающиеся обработкой запросов, обеспечивая равномерное распределение нагрузки по кластеру. Также балансировщики отрабатывают инциденты отказа софта или железа на узлах обработки данных — если узел перестаёт корректно обрабатывать данные, то он исключается из списка балансировки.

Мониторинговые системы

Мониторинг и оповещения — системы, собирающие важные метрики производительности системы и сообщающие о проблемах.

Почтовые сервисы

Службы работы с электронной почтой. Позволяют осуществлять приём и отправку почты. Не рекомендуется на одной машине совмещать эти службы с размещением сайта, так как на активные почтовые домены поступает много писем и большая часть из них — спам, а их получение и обработка требуют как вычислительных мощностей сервера, так и загружают канал связи — всё это может вызывать замедление работы сайта. Эта рекомендация не касается почты на виртуальных хостингах, там размещение почты и сайтов осуществляется на разных серверах.

Рекомендации

  • При выборе виртуального хостинга сопоставьте технические требования используемой вами системы управления или веб‑приложения и список возможностей тарифного плана.
  • При разработке веб‑приложений старайтесь минимизировать количество зависимостей и не расширяйте технологический стек без необходимости — большое количество используемых технологий повышает риски и усложняет процессы сопровождения.
  • Используйте инструменты, которые наиболее хорошо подходят для решения задач, например: для надёжного хранения и транзакционной обработки данных используйте реляционные СУБД, а не NoSQL; для поиска — поисковые системы, а не реляционные СУБД; для кэширования — Redis / Memcached, а не файловую систему; для сильно нагруженных сервисов компилируемые, а не интерпретируемые языки программирования.
  • При настройке серверного ПО конфигурируйте сервисы, основываясь на мощности используемого оборудования. Очень часто используемые по умолчанию конфигурации либо не используют в должной мере имеющиеся вычислительные ресурсы, что снижает общую производительность. Либо, напротив, в пик нагрузки сервисы могут выйти за рамки имеющихся мощностей, что потенциально приведёт к их аварийной остановке.
  • «Запрещено всё, что явно не разрешено» — этот принцип информационной безопасности существенно снижает угрозы. Закрывайте неиспользуемые публично порты, старайтесь минимизировать количество служб, расположенных в DMZ, урезайте права учётных записей до уровня, необходимого для выполнения возложенных задач.
  • При использовании выделенных серверов (в т.ч. и виртуальных) обеспечьте своевременное обновление ПО, это залог стабильности работы и безопасности.
  • Автоматизируйте резервное копирование. Бэкапируйте не только данные, но и конфигурации используемых сервисов.
  • Для упрощения настройки используйте системы управления конфигурациями, например, Ansible.
  • Настройте мониторинг как оборудования, так и программных сервисов. Это упрощает разбр инцидентов, позволяет превентивно решать часть проблем и ускоряет реакцию на сбои.
  • Не размещайте почтовые сервисы на том же сервере, где размещаете сайт. Самое простое решение для размещения почты — воспользоваться специальными сервисами Яндекса — 360.yandex.ru / VK — biz.mail.ru / Google — google.com/apps . Эти службы по качеству превосходят многие «почтовые» тарифы хостингов и практически все «самодельные» решения.
системное администрированиесерверное ПО
Статья опубликована в 2014 и была обновлена в 2022 году

Тематические статьи

Реляционные базы данных и NoSQL‑хранилища

Базы данных служат для хранения и обработки данных. Бывают реляционные (SQL) и нереляционные (NoSQL) системы управления базами данных. Реляционные системы управления базами данных (SQL) хранят данные в таблицах и наиболее часто используются в качестве основного хранилища для веб‑приложений. Они очень стабильны и их надёжность проверена временем. Нереляционные СУБД (NoSQL) заметно отличаются по структуре хранения данных и работе с ними. Большинство нереляционных хранилищ превосходят классические SQL СУБД по скорости доступа или при работе со специфическими типами данных, но обычно эта скорость достигается за счёт снижения надёжности хранения.

Статья обновлена в 2021 году
Хостинг сайтов и веб‑приложений

Это услуга по предоставлению дискового пространства и вычислительных ресурсов на сервере, постоянно находящемся в сети интернет. Обычно под понятием услуги хостинга подразумевают как минимум услугу размещения файлов сайта на сервере, на котором запущено ПО, необходимое для обработки запросов к этим файлам (веб‑сервер).

Статья опубликована в 2014 году
PostgreSQL — система управления базами данных

PostgreSQL — это популярная объектно-реляционная система управления базами данных. PostgreSQL базируется на языке SQL, отличается высокой надёжность и имеет широкие возможности.

В PostgreSQL нет ограничений на максимальный размер базы данных, количество записей и индексов таблицах. В СУБД встроены мощные и надёжные механизмы транзакций, есть возможности для репликации, шардинга и партиционирования. СУБД отличает легкая расширяемость и возможность тонкой настройки.

Статья обновлена в 2025 году
MongoDB — документо-ориентированная база данных (NoSQL)

MongoDB — это NoSQL хранилище данных, крайне удобное для хранения информации, которая не может быть нормально структурирована в рамках реляционных баз данных.

MongoDB — это СУБД с открытым исходным кодом, не требующая описания схемы таблиц. Документы в MongoDB хранятся в JSON или BSON, работа с такой моделью проще кодируется и проще управляется, а внутренняя группировка релевантных данных обеспечивает дополнительный выигрыш в быстродействии.

Статья опубликована в 2019 году
MySQL — система управления базами данных

MySQL — это реляционная система управления базами данных с открытым исходным кодом. В настоящее время эта СУБД одна из наиболее популярных в веб‑приложениях — подавляющее большинство CMS использует именно MySQL (часто только её, без альтернатив), а почти все веб‑фреймворки поддерживают MySQL уже на уровне базовой конфигурации (без дополнительных модулей).

Статья опубликована в 2014 году
MariaDB — система управления реляционными базами данных

MariaDB — ответвление реляционной СУБД MySQL, разрабатываемое сообществом под лицензией GPL. MariaDB полностью совместима с приложениями, использующими MySQL, а переход на эту СУБД оправдан тем, что MySQL уже не так активно развивается.

Статья опубликована в 2014 году

Наши услуги

Поддержка проектов и DevOps

Осуществляем комплексную поддержку ИТ‑проектов для обеспечения высокой работоспособности и улучшения продуктовых метрик.

Выделенные серверы

Разворачиваем и сопровождаем хостинговые площадки на базе выделенных серверов.

Кластерный хостинг

Осуществляем организацию и дальнейшее сопровождение кластерных хостинговых решений.

Облачный хостинг

Осуществляем разворачивание и дальнейшее сопровождение облачных хостинговых решений.

Разработка

Разрабатываем сложные веб‑приложения и сайты. Создаём как отдельные инструменты для бизнеса, так и полноценные цифровые системы по индивидуальным требованиям.