Гайды для владельцев

Что настроить на сервере перед запуском сайта

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

Между арендованным сервером и работающим сайтом лежит настройка.

Что вы получаете от провайдера и что придется сделать самому

Граница ответственности проходит по железу, и это стоит понимать буквально.

Провайдер отвечает за то, что сервер включен, подключен к сети и не сгорел. У него есть резервное питание, каналы связи и замена оборудования. На этом его зона заканчивается.

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

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

Базовая безопасность до всего остального

Порядок здесь важен. Сначала защита, потом все остальное, потому что новый сервер в интернете начинает получать попытки подбора в первые же часы.

Доступ и ключи вместо паролей

Первое, что делают на свежем сервере.

  • Вход по ключу. Пароль подбирают, ключ так не украдут.
  • Вход по паролю отключен. Совсем, а не «сложный пароль».
  • Главный администратор не входит напрямую. Отдельный пользователь.
  • Порт доступа изменен. Это не защита, но автоматических попыток входа в журналах становится заметно меньше.
  • Учетная запись на человека. Уход одного закрывает одну дверь.

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

Сетевые правила и обновления системы

Второй слой такой же обязательный.

Открыты должны быть только те порты, которые действительно нужны: веб, почта, если она здесь, и доступ для администрирования. Все остальное закрыто по умолчанию, а не открыто до первой проблемы.

Автоматические обновления безопасности включаются сразу. Это не то же самое, что автоматическое обновление всего подряд, которое может сломать работающее. Речь именно про исправления уязвимостей, и их установка без задержки закрывает основную часть массовых атак.

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

Веб-сервер, PHP и база данных

Здесь начинается часть, которая напрямую влияет на скорость сайта.

что настраивается на что влияет
Версия языка скорость и безопасность
Лимит памяти на процесс завершится ли тяжелая страница
Время выполнения пройдет ли импорт до конца
Число рабочих процессов сколько посетителей обслужится сразу
Кеш скомпилированного кода заметное ускорение почти даром
Настройки базы скорость сложных запросов

Самая частая ошибка на этом этапе это настройки по умолчанию. Они рассчитаны на очень маленький сервер и не учитывают ни объем памяти вашего сервера, ни характер нагрузки. Сервер с восемью гигабайтами памяти, работающий на настройках по умолчанию, использует малую часть своих возможностей.

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

Кеширование и границы нагрузки

Кеш это самая дешевая скорость, которую можно получить.

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

Слоев обычно три. Кеш скомпилированного кода на уровне языка, объектный кеш в памяти и кеш готовых страниц. Первый включается всегда, второй почти всегда, третий настраивается под конкретный сайт.

Отдельно задаются границы, за которые сервер не выйдет. Максимальное число одновременных процессов и лимит памяти на каждый. Смысл в том, что при всплеске трафика сервер должен замедлиться, но остаться живым, а не упасть целиком. Разница для владельца существенная: в первом случае страница грузится пять секунд, во втором сайт недоступен.

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

Проверить настройки под нагрузкой стоит до запуска, а не после первой акции.

  • Сколько держит главная. Она обычно кешируется целиком.
  • Сколько держит каталог с фильтром. Здесь кеш помогает меньше.
  • Что происходит при перегрузке. Сервер должен замедлиться, а не упасть.
  • Хватает ли памяти на пике. Своп означает, что не хватает.
  • Успевают ли фоновые задачи. Импорт не должен мешать посетителям.

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

Почта и ее репутация

Самая недооцененная часть настройки и самая болезненная при ошибке.

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

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

  • Запись отправителей. Кому разрешено слать письма от вашего имени.
  • Цифровая подпись писем. Подтверждает, что письмо не подделано.
  • Правило обработки. Что делать с письмами, не прошедшими проверку.

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

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

Что делать с чужой почтой на том же домене

Частая ситуация. Сайт переезжает на новый сервер, а почта живет во внешнем сервисе, и трогать ее нельзя.

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

Второй момент. На самом сервере надо явно указать, что почта для этого домена обслуживается снаружи. Иначе сервер попытается доставить письмо сам себе, и уведомления с сайта не дойдут до вашего же ящика.

Сертификаты и автопродление

Сертификат сейчас получают бесплатно, и главное здесь не выпуск, а продление.

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

Отдельно стоит настроить оповещение, если срок подходит, а обновление не прошло. Автоматика тоже ломается, обычно после смены настроек веб-сервера.

Несколько сайтов на одном сервере

Если на сервере будет больше одного сайта, их надо разделить.

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

Это делается один раз при настройке и почти невозможно сделать задним числом без переноса файлов. Поэтому вопрос «будет ли тут еще что-то» стоит задать до начала, а не после.

Резервные копии вне сервера

Копия на том же сервере это не копия. Правило звучит банально и нарушается постоянно.

  • Хранилище отдельно. Другой провайдер или облако.
  • Файлы и база на один момент. Расписание может быть разным, но точка восстановления общая.
  • Расписание по нагрузке. Интернет-магазину суточной копии мало.
  • Несколько поколений. Не только последняя.
  • Проверка восстановлением. Иначе это просто архивы.

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

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

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

Мониторинг и оповещения

Проверять надо не сервер, а сайт. Это разные вещи.

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

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

Минимальный набор состоит из шести проверок.

  • Открывается ли главная. Раз в минуту, с ожиданием кода ответа.
  • Отвечает ли база. Отдельно от сайта.
  • Место на диске. Предупреждение заранее, а не по факту.
  • Память и нагрузка. Чтобы видеть тенденцию, а не только аварию.
  • Срок сертификата. За две недели до конца.
  • Прошла ли резервная копия. Молчание тоже сигнал.

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

Что проверяют перед тем, как пускать трафик

Финальный список, по которому проходят до переключения домена.

Сайт открывается по всем нужным адресам. Сертификат действителен и обновляется автоматически. Форма отправляет письмо, и оно доходит. Тестовый заказ проходит целиком. Админка работает, файлы загружаются. Задачи по расписанию запустились хотя бы раз. Копия снялась и развернулась. Мониторинг прислал тестовое оповещение. После обхода всех страниц журнал ошибок остается чистым.

Порядок самого переключения и то, как не потерять заказы в этот момент, разобран отдельно в статье про перенос сайта на новый сервер.

Сколько это стоит и кто ведет сервер дальше

Первичная настройка делается один раз, и ее объем зависит от того, что будет жить на сервере. Сайт компании с почтой и копиями занимает меньше времени, чем интернет-магазин с очередью задач и обменом с учетной системой. Объем считаем индивидуально, по ставке $25/час. Сервер под сами учетные программы собирается по другим правилам, их мы разобрали на примере сервера для 1С и M.E.Doc.

Дальше сервер надо вести, и это уже регулярная работа: обновления, мониторинг, реакция на сбои, проверка копий. Администрирование сервера у нас стоит от $400/мес, и эта плата покрывает регламентные работы, перечисленные на странице администрирования серверов, а заявки сверх регламента считаются почасово.

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

Выводы

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

Порядок имеет значение. Безопасность делается первой, потому что попытки подбора начинаются раньше, чем на сайт придет первый настоящий посетитель.

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

Остались вопросы?

Оставьте заявку, и мы свяжемся с вами в ближайшее время

    Удобный способ связи:
    *Обязательное поле для заполнения
    Нажимая кнопку, вы подтверждаете, что ознакомились с Политикой конфиденциальности