Как нужно администрировать веб-сервер сайта для его стабильной работы и высокой безопасности

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

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

Оцените:
 

Спонсор — команда системных администраторов
Centos-admin во главе с Игорем Олемским,
которая занимается удаленным обслуживанием веб-серверов.


 

Установка и обновление программного обеспечения на веб-сервере


Одна из основных задач при развертывании сервера — это установка и обновление программного обеспечения. В стандартный набор обычно входят операционная система, база данных, серверные части приложений.


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



Настройка веб-сервера и оптимизация скорости


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


Как вы понимаете, любой сайт можно условно представить в виде системы back-end + front-end. Они взаимозависимы и часто нагрузку на сервер можно снизить за счет оптимизации сайта. Например, установить систему кэширования или использовать географически распределенную систему доставки контента (CDN). Улучшение работы серверной части возможно за счет оптимизации Apache и PHP, инсталляции HTTP-сервера Nginx. А для того, чтобы оценить результаты настройки и оптимизации, необходимо проанализировать производительность. В Linux это выполняется стандартными утилитами, например top, iostat или ifstat. Оценку скорости загрузки сайта можно провести с помощью специализированных веб-сервисов — например, Google PageSpeed Insights.



Постоянный мониторинг активности веб-сервера


Мало просто настроить и оптимизировать сервер — за ним необходимо постоянно наблюдать и проще всего делать это с помощью систем мониторинга. Можно подключить коммерческую облачную систему, такую как CA APM Cloud Monitor, или использовать другой подобный инструмент.


Такой мониторинг надежнее системы, установленной на самом сервере, уже потому, что обладает огромным набором точек подключения и проверки. Система может проверять, насколько хорошо сервер работает для пользователей из США, Китая, Бразилии, Австралии и других стран. Системы мониторинга также круглосуточно проверяют и тестируют протоколы — от HTTP до FTP, позволяют использовать сетевые инструменты Ping, Traceroute, DNS Query и другие, формируют подробные отчеты со статистикой «взлетов и падений» сервера. Словом, с такой системой вы вряд ли пропустите даже малейший сбой.



Нагрузочное тестирование веб-сервера


Как вы уже успели заметить, администрирование сервера похоже на полосу препятствий. К счастью, каждое из них сравнительно легко преодолеть с использованием знаний и опыта профессионалов.


Обеспечив мониторинг сервера, вы частично подготовили его к высоким нагрузкам, которые могут возникнуть по мере роста популярности вашего сайта. Да, большое количество посетителей — это не только безусловное благо, но и ответственность, которая ложится на администратора. Как обеспечить работу сайта при высоких нагрузках?


Для начала, необходимо протестировать сервер на предмет работы в условиях высокой нагрузки — такую проверку называют нагрузочным тестированием. Главными метриками здесь служат скорость обработки запросов и вероятность отказа в обслуживании. Стандартные тестовые наборы, применяемые при нагрузочном тестировании, — это SPECweb99, WebBench, WebStone, TCP-W и другие. Вы можете задать такой системе сценарий нагрузки. Если ожидается приток новых пользователей в интернет-магазин, то можно отработать сценарий покупки и выяснить, при каком количестве обращений в минуту сервер перестает обслуживать запросы. А уже затем, на основе полученных цифр и графиков, делать выводы и дорабатывать систему.


Доработка системы, конечно, зависит от архитектуры. Но для большинства сайтов справедлива следующая конструкция: система управления контентом (CMS) на базе PHP, установленная на сервере Apache. Поэтому, оптимизация под высокие нагрузки обычно сводится к оптимизации Apache и PHP, установке eAccelerator, Nginx и Memcached, а также клиентской оптимизации.


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


Оптимизировать работу PHP можно за счет редактирования файла php.ini, расположенного на сервере. Например, в строке memory_limit можно выставить лимит памяти, которую движок может тратить на генерацию страницы. Не лишней будет и установка eAccelerator — это инструмент, который компилирует исходный текст на PHP в двоичный код и хранит его в оперативной памяти сервера для ускорения доступа. Для большинства ресурсов уже этих методов будет достаточно, чтобы подготовить сайт к большим нагрузкам.



Регулярное резервное копирование данных


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


Первый может функционировать по-разному, в зависимости от операционной системы. В Linux резервное копирование реализуется посредством специальных скриптов, запускать которые можно по расписанию. В Windows существует специальное программное обеспечение для резервного копирования и восстановления как самой системы, так и данных, которыми она оперирует.


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



Построение системы превентивной защиты веб-сервера


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


Основные угрозы — это, конечно, вирусы, взломы и DDoS-атаки. У большинства производителей антивирусов есть корпоративные продукты и специальные версии для серверов со встроенной превентивной защитой. Вендор постоянно собирает и анализирует модели поведения множества угроз. Таким образом, при обнаружении подозрительного паттерна, программа блокирует соединение.


Если очевидная необходимость борьбы с вирусами не вызывает сомнений, то к DDoS-атакам готовятся далеко не все. Считается, что такие атаки грозят лишь крупным порталам и корпорациям, но это совсем не так. Стать жертвой DDoS может даже небольшой интернет-магазин, если атаку закажет конкурент или другой недоброжелатель. Обычно различают пассивные и активные способы защиты, превентивные и реакционные действия. Предупредительная защита предполагает фильтрацию и блэкхолинг, устранение уязвимостей сервера, наращивание ресурсов, рассредоточение и маскировку IP-адреса. Активная защита — это ответ на действия злоумышленника, когда атака уже состоялась.



Масштабирование веб-сервера


Если ожидается, что в скором времени сервер перестанет справляться с нагрузкой из-за роста посещаемости или увеличения объема хранящихся данных, — пора заняться его масштабированием. Есть два основных вида масштабирования: вертикальное и горизонтальное.


Вертикальное масштабирование — повышение производительности сервера за счет увеличения производительности отдельных ее компонентов, то есть, проще говоря, их замены на более мощные.


Горизонтальное масштабирование — добавление в систему новых структурных элементов (например, увеличение парка серверов) и распределение нагрузки между ними.


Правильно спроектировать новую архитектуру серверов, подобрать необходимые компоненты для модернизации системы — достаточно сложные задачи.



Техническая поддержка пользователей


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



Вместо заключения: нанять специалистов или привлечь аутсорсеров?


Теперь, когда вы знакомы со всеми основными сложными задачами по администрированию веб-сервера, необходимо решить — делать все это собственными силами или отдать на аутсорсинг.


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


Напоследок рекомендуем ознакомиться также с руководством по полному аутсорсингу поддержки сайта в нашем блоге об интернет-маркетинге «Ловим сетью». В статье говорится о том, как найти лучших профессионалов в каждой области и организовать с ними сотрудничество.



Спонсор этой статьи — компания Centos-admin и ее основатель Игорь Олемской.



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


Девять опытных специалистов компании оказывают услуги высокого качества по мониторингу серверов, их оптимизации и масштабированию, резервному копированию, помощи в защите от DDoS-атак.


Почитайте отзывы их довольных заказчиков — они позволяют составить представление о профессионализме и надежности Centos-admin.


Среди клиентов — Free-lance.ru, «РЕН ТВ», «Азбука вкуса», Grape, Ailove и другие успешные сайты и компании.


Посетите сайт Centos-admin
и ознакомьтесь с услугами команды Игоря Олемского.


Оцените: