Б л о г
Вернуться назад

Кейс Москва-Баку. Как мы превратили 140 ГБ legacy-проекта в стабильный новостной сайт

21 августа 2026 (обн. 24 августа 2026)
Перенесли 10-летний новостной проект на современный стек, обновили 1С-Битрикс, вынесли 90 ГБ изображений в S3 и снизили нагрузку на сервер.

Задача

К нам обратился крупный новостной проект с простой, но критичной проблемой: сайт на 1С-Битрикс периодически становился недоступен.

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

За плечами проекта — около 10 лет развития, более 128 тысяч публикаций, большая медиатека и сформировавшаяся аудитория. При этом техническая часть проекта долгое время развивалась без системной модернизации.

Наша задача была не просто «поднять сайт», а понять, почему он падает и что нужно изменить, чтобы проблема не возвращалась.

Сначала перестали гадать

Первым делом подключили мониторинг доступности сайта.

Он показал закономерность: сайт много раз в сутки становился недоступен на 3–5 минут. В момент сбоя происходил таймаут подключения, после чего сервер возвращался в работу.

Следующим этапом посмотрели на сам сервер.

Картина оказалась показательной:

  • загрузка CPU регулярно доходила почти до 600%;
  • оперативная память была занята на 98–99%;
  • диск на 160 ГБ был заполнен примерно на 92%;
  • Nginx фиксировал сотни тысяч запросов в сутки;
  • значительную часть запросов генерировали боты.
Инциденты

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

Начали разбирать, что происходило внутри проекта.

Что обнаружили внутри

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

На сервере находились:

128+ тысяч публикаций

Новости хранились в инфоблоках 1С-Битрикс с большим количеством полей и связей.

140 ГБ данных

Около 120 ГБ занимали изображения из публикаций.

Устаревший стек

CentOS 7, Bitrix VM 7.5, Apache + Nginx и PHP 7.3.

Устаревшая версия 1С-Битрикс

Проект не обновлялся с 2023 года.

Тяжёлые фоновые процессы

На cron выполнялись ресурсоёмкие скрипты, которые конкурировали за ресурсы с основным сайтом.

Нагрузка от ботов

Часть запросов не имела отношения к реальным пользователям и дополнительно расходовала ресурсы сервера.

Проблемы с кешированием

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

Редкие резервные копии

Полный backup выполнялся раз в неделю.

Оптимизация legacy на 1С-Битрикс
Наводим порядок в сложных legacy-проектах на 1С-Битрикс: разбираемся с техническим долгом, обновляем Битрикс и PHP.
Подробнее

Почему сайт падал

После анализа инфраструктуры, логов и кода сформировали картину.

Проблема была не в одной конкретной ошибке. Сайт падал из-за совокупности технических факторов.

Нелегитимные боты создавали дополнительную нагрузку.

Тяжёлые запросы к инфоблоку с 128 тысячами публикаций потребляли большое количество ресурсов.

Некоторые компоненты Битрикс работали неоптимально и выполняли слишком дорогие выборки.

Фоновые cron-задачи конкурировали с пользовательскими запросами за CPU и память.

Кеш проекта разрастался и дополнительно нагружал систему.

При этом Apache был настроен таким образом, что при пиковом количестве соединений сервер упирался в лимит. В результате происходила перезагрузка, а сайт становился недоступен на те самые 3–5 минут.

Наш вывод

Нужно было не увеличивать сервер и ждать следующего падения.

Проекту требовалось техническое наведение порядка.

Что сделали

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

1. Отсечь лишнюю нагрузку

Начали с Nginx и инфраструктурного уровня.

Настроили фильтрацию нелегитимных ботов, чтобы они не доходили до приложения и не тратили ресурсы PHP и Битрикс.

Параллельно пересмотрели cron-задачи:

  • разобрали выполняемые скрипты;
  • нашли ресурсоёмкие процессы;
  • изменили расписание;
  • убрали конкуренцию фоновых задач с пользовательской нагрузкой.

Также скорректировали настройки Apache для работы с большим количеством одновременных соединений.

2. Обновить фундамент

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

CentOS 7 находился в конце жизненного цикла, PHP 7.3 давно устарел, а версия Битрикс не позволяла использовать современные возможности инфраструктуры.

Поэтому приняли решение перейти на новый VPS и современный стек:

  • актуальную Bitrix VM;
  • современную версию PHP;
  • MySQL 8;
  • обновлённую версию 1С-Битрикс.

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

Далее провели последовательное обновление:

PHP 7.3 → PHP 8.x → актуальная версия 1С-Битрикс.

По дороге исправили код, несовместимый с PHP 8, и подготовили отдельную ветку проекта с необходимыми изменениями. После этого сформировали план обновления production.

Обновление 1С-Битрикс до актуальной версии
Обновим ваш сайт на 1С-Битрикс без потери данных, SEO-позиций и работоспособности интеграций.
Подробнее

Большая проблема — 120 ГБ картинок

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

На сервере было около 140 ГБ данных, из которых примерно 120 ГБ занимали изображения.

При этом свободного места оставалось около 10%.

Хранить такой объём медиаданных на локальном диске приложения было архитектурно неоптимально.

Поэтому изображения решили вынести в S3-хранилище.

Это позволило:

  • разгрузить сервер приложения;
  • уменьшить размер проекта;
  • отделить медиаданные от инфраструктуры сайта;
  • упростить дальнейшее масштабирование;
  • не зависеть от размера локального диска VPS.

Но здесь обнаружилась ещё одна проблема: старая версия Битрикс не поддерживала необходимые современные механизмы работы с S3. Поэтому сначала пришлось обновить CMS.
Антон Носков
Техдир Monoplan

3. Перенесли медиатеку в S3

После обновления Битрикс подключили S3 и запустили перенос изображений.

И здесь нас ждал неприятный сюрприз.

Стандартный механизм Битрикс переносил изображения со скоростью примерно 1–2 ГБ в час.

При 120 ГБ данных это означало до 60 часов непрерывной миграции.

Останавливать редакцию на такой срок было невозможно.

Что сделали

Изменили стратегию миграции.

Редакцию вернули к работе, а перенос изображений продолжили параллельно.

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

Утром редакция уже работала на новой инфраструктуре.

Неожиданный бонус

В процессе переноса обнаружили около 20 ГБ устаревших resize-копий изображений, которые больше не использовались сайтом.

В результате в S3 перенесли около 90 ГБ актуальных изображений.

Размер данных самого проекта сократился:

120 ГБ → 15 ГБ

То есть медиаданные, занимавшие около 120 ГБ локального диска, были практически полностью вынесены из проекта.

Объём локальных данных сократился примерно на 87,5%.

4. Оптимизировали работу 1С-Битрикс

После стабилизации инфраструктуры перешли непосредственно к приложению.

Основная проблема находилась в работе с новостным инфоблоком.

128 тысяч публикаций — это уже объём, при котором неэффективный запрос может стать серьёзной проблемой.

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

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

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

5. Переехали на новую инфраструктуру

Когда размер проекта удалось привести в адекватное состояние, сделали backup и перенесли проект на новый VPS.

Параллельно:

  • обновили системное ПО;
  • обновили PHP;
  • обновили MySQL;
  • обновили 1С-Битрикс;
  • настроили работу с S3;
  • пересмотрели конфигурацию веб-сервера;
  • настроили мониторинг;
  • проверили cron;
  • оптимизировали кеширование.

Что пошло не по плану

Большой legacy-проект невозможно перенести без сюрпризов.

60 часов на перенос изображений

Первоначально планировали выполнить перенос с остановленной редакцией.

Но скорость 1–2 ГБ/час сделала такой сценарий неприемлемым.

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

После обновления выросло количество обращений от редакции

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

После запуска редакторы начали сталкиваться с:

  • срабатыванием проактивного фильтра;
  • блокировками сессий;
  • другими отличиями в поведении административной части.

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

Решение: выделили отдельную команду на период запуска, собрали типовые проблемы и подготовили инструкции.

Через несколько дней около 99% подобных вопросов закрывались готовыми решениями.

Новый сервер получил проблемный IP

В процессе переезда обнаружили, что выданный VPS IP-адрес не подходит для нормальной работы части пользователей.

Предположительно, адрес попал под фильтрацию сетевого трафика.

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

Решение: заменили IP-адрес сервера.

Вся процедура заняла около 15 минут, после чего доступ восстановился.

Результат

За время проекта мы не просто «починили падения».

Мы привели в порядок инфраструктуру и архитектуру проекта, который развивался около 10 лет.

Было

  • 128+ тысяч публикаций;
  • ~120 ГБ изображений на локальном сервере;
  • ~140 ГБ общего объёма данных;
  • 10% свободного места на диске;
  • CentOS 7;
  • PHP 7.3;
  • устаревшая версия 1С-Битрикс;
  • регулярные падения сайта;
  • тяжёлые cron-задачи;
  • лишний трафик от ботов;
  • неоптимальные запросы и кеширование;
  • backup раз в неделю.

Стало

  • современная серверная инфраструктура;
  • актуальный стек PHP / MySQL / 1С-Битрикс;
  • изображения вынесены в S3;
  • локальный объём данных сокращён с 120 до 15 ГБ;
  • оптимизированы тяжёлые запросы;
  • переработано кеширование;
  • пересмотрены cron-задачи;
  • настроена фильтрация ботов;
  • подключён мониторинг;
  • проект перенесён на новый VPS;
  • миграция выполнена с минимальным простоем редакции.

Главное в этом кейсе

Для нас это не история про «поставили сервер мощнее».

Наоборот.

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

Это и есть то, что мы называем техническим наведением порядка в legacy-проекте.

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

Иногда гораздо эффективнее системно разобрать то, что уже есть, убрать узкие места и привести инфраструктуру к современному состоянию.

Именно этим мы и занимаемся в MONOPLAN.

Антон Носков
Техдир MONOPLAN
21 августа 2026 (обн. 24 августа 2026)
21 августа 2026 (обн. 24 августа 2026)
Еще больше полезной информации про мир диджитал и жизнь в Моноплане у нас в телеграм канале
Подписаться
Ко всем статьям