Осенью посещаемость сайтов обычно начинает расти. Для бизнеса дело за малым – сделать так, чтобы интернет-ресурс при этом работал бесперебойно и быстро. Мы проанализировали сотни обращений в нашу техническую поддержку и сделали объективный рейтинг причин недоступности сайтов. Сегодня расскажем о них подробнее.
Нехватка ресурсов сервера – главная причина недоступности сайтов
По разным оценкам, 60–80% посетителей никогда не возвращаются на сайт, который не открывался или работал очень медленно.
И основная причина недоступности, по данным нашего исследования, – нехватка ресурсов сервера.
На втором месте – ошибки в работе самого веб-приложения, а замыкают тройку лидеров проблемы в конфигурации веб-сервера.

Какие именно процессы чаще всего «съедают» ресурсы:
- базы данных (чаще всего MySQL);
- исполнение кода (в лидерах PHP и Python);
- веб-сервер (как правило, Nginx, реже Apache);
- системные процессы и службы.
Отдельно стоит сказать пару слов о бот-трафике, который также способен создать избыточную нагрузку, а порой это его основная функция.
Как оптимизировать работу веб-ресурса
- Настройте кэширование. Это поможет снизить нагрузку на сервер и ускорить работу проекта, поскольку системе не нужно будет каждый раз заново генерировать один и тот же контент. Например, кэширование страниц сайта и отдельных фрагментов можно настроить прямо на уровне веб-сервера с помощью Nginx. А такие решения, как Redis и Memcached, помогут приложению работать еще шустрее за счет быстрого доступа к часто используемым данным.
- Оптимизируйте работу баз данных. Здесь в первую очередь стоит упомянуть горизонтальное масштабирование (репликацию), оптимизацию и минимизацию запросов. Подробнее об этих методах с примерами можно почитать в нашем блоге.
- Оптимизируйте работу приложения на уровне интерфейса и бэкенда. Здесь мы подробно описали, для чего нужны асинхронность, профилирование и lazy loading.
- Позаботьтесь об инфраструктуре и инструментах защиты. Здесь остановимся подробнее и сфокусируемся на потребностях проектов и интернет-магазинов с достаточно высокой или переменной нагрузкой, чтобы было о чем подумать до периода распродаж.
Как подготовить инфраструктуру к повышенным нагрузкам
Переносите проект в облако и убедитесь, что используете там производительные NVMe-диски. Если вы сторонник выделенных серверов, лучше позаботиться о резервном железе: дополнительном сервере или кластере.
Мы рекомендуем именно облачные серверы, поскольку только такое решение позволит вам гибко менять мощности, адаптируясь к текущим потребностям вашего ресурса. Например, увеличить мощность на дни распродаж, а потом снова вернуть показатели к рабочим значениям. Или, например, создать новый сервер на несколько дней или даже часов, что позволяет сильно экономить и не тратить драгоценное время на настройки.
Настройте балансировку трафика, чтобы снизить нагрузку на систему. Это можно сделать при помощи haproxy, nginx, облачного маршрутизатора и других решений. Балансировку обеспечит и сервис комплексной защиты hoster Guard, о котором подробнее расскажем дальше.
Подключите мониторинг. Это позволит точно знать, что именно происходит с вашими серверами и работают ли они в оптимальном режиме. Все показатели будут под рукой в режиме реального времени или за выбранный период. Здесь же можно указать пороговые значения, при достижении которых вы получите уведомление о том, что сервер работает под нагрузкой.
Для мониторинга всей инфраструктуры существует множество решений: например, Prometheus в связке с Grafana, Nagios, Monitorix, CloudWatch, Stackdriver и другие. Если потребуется помощь с их настройкой, наши специалисты всегда помогут с этим.
Позаботьтесь о резервных копиях. Банально, но вынуждены повторить: позаботьтесь о резервных копиях. Именно от них будет многое зависеть, если, несмотря на все старания, что-то пойдет не по плану. Не станем вдаваться в тонкости, потому что тут многое зависит от специфики вашего проекта, но хотя бы помните о правиле «3-2-1»: у ваших данных должны быть по меньшей мере три копии на двух разных носителях, один из которых будет находиться вне вашей основной инфраструктуры.
Настройте комплексную защиту. Высокий сезон – традиционный пик волны киберпреступлений, в том числе взломов и DDoS-атак. На эту тему можно написать отдельный огромный материал, но давайте хотя бы кратко. Помимо упомянутых угроз, стоит подумать о защите от SQL-инъекций и XSS с помощью WAF или Web Application Firewall. А также от вредоносных ботов и скриптов, например через ограничение числа запросов с одного IP.
Итого: каким бы ни был ваш проект, наверняка в нем есть что улучшить. Используйте наши рекомендации, чтобы этот сезон стал для вас временем роста и высоких продаж. Если потребуется любая помощь – от бесплатной консультации до переноса проекта и настроек любой сложности – вы знаете, к кому обратиться.
*Партнерский материал. ООО «Надежные программы», УНП 100160363