Перенос 1С‑Битрикс на новый сервер: файлы, БД, DNS, заморозка публикации и пара id/url
1. Синхронизация файлов
Для значимых деревьев внутри web‑корня (код, upload, статика) используйте инкрементальную синхронизацию. На боевых контурах лучше SSH‑ключ и отдельный пользователь без интерактивных паролей в истории команд.
rsync -aHz --delete --exclude 'bitrix/cache/' --exclude 'bitrix/managed_cache/' \
/path/www/ user@новый.сервер:/path/site.ru/Флаг --delete включают только когда уверены, что источник — эталон; иначе уберите, чтобы не снести лишнее на приёмной стороне. Исключения под кеш и временные каталоги сокращают время прогона.
2. Пауза сервисов и «публикация + карта»
На старом узле до переключения DNS (до 48 часов в исходной схеме) разумно остановить процессы, дающие расхождение данных между машинами: онлайн‑оплата, регистрация, любые очереди, которые пишут в БД или на диск. Отдельно заморозьте публикацию материалов: пока поток редакторов сохраняет инфоблоки, между финальным mysqldump и открытием нового узла ползёт расхождение.
Параллельно составьте простую карту проверки (hosts или закрытый поддомен на новый IP до боевого DNS): список критичных URL и ожиданий — главная, каталог, детальная карточка, корзина, личный кабинет, формы. Так вы отделяете ошибки конфигурации от проблем DNS.
3. Ускорение смены DNS
- Выставить минимальный TTL для A‑записи (например, 900 секунд).
- Выждать прежний TTL (часто сутки и больше), чтобы клиентские резолверы подтянули новое значение.
- Переключить A‑запись на IP нового сервера.
- По стабилизации трафика при желании вернуть прежний длинный TTL.
4. Синхронизация базы
Потоковая передача без промежуточного файла на диск отправителя:
mysqldump -uUser -p -h Host --single-transaction --routines --triggers DbName \
| ssh user@новый.сервер 'mysql -uUser -p -h Host DbName'Пароль интерактивно или через ~/.my.cnf, чтобы не светить его в процесс‑листе. Для крупной базы смотрите сжатие и окно обслуживания.
5. Почему нельзя опираться на id/url до первой публикации
Числовой ID элемента инфоблока появляется сразу после успешного Add/update в базе. Другое дело — публичный адрес и SEO: пока элемент в черновике, снят с публикации или шаблон ЧПУ строится «лениво», фронтовая «каноническая» ссылка может отличаться от той, что вы ожидали по правилам инфоблока. То есть перед показом на сайте пара «как человек попадёт по ссылке» не зафиксирована: нет смысла прокидывать в интеграции и редиректы «старый URL → новый» до первой фактической публикации на целевом контуре и прогрева кеша.
После переноса на новый сервер дополнительно сбросьте файловый и тегированный кеш, проверьте настройки сайта в bitrix/.settings.php и соответствие домена в таблице b_lang, чтобы генерация ссылок шла с правильного SITE_DIR и схемы.
6. Вернуть id и url после сохранения элемента (простой приём)
После добавления или публикации удобно одним участком вернуть и идентификатор, и готовый путь детальной страницы — ими можно обмениваться с внешними системами или логировать миграцию. Публичный DETAIL_PAGE_URL имеет смысл запрашивать уже после активной записи и настроенных шаблонов ЧПУ: до первой по сути публикации (активности и понятной схемы URL) строка может быть пустой или временной.
use Bitrix\Main\Loader;
Loader::includeModule('iblock');
$fields = [
'IBLOCK_ID' => 1,
'NAME' => 'Элемент после переноса',
'ACTIVE' => 'Y',
];
$el = new CIBlockElement();
$id = (int) $el->Add($fields);
if ($id <= 0) {
return ['ok' => false, 'error' => $el->LAST_ERROR];
}
$url = '';
$res = CIBlockElement::GetList(
[],
['ID' => $id],
false,
false,
['ID', 'DETAIL_PAGE_URL']
);
if ($row = $res->GetNext()) {
$url = (string) $row['DETAIL_PAGE_URL'];
}
return ['ok' => true, 'id' => $id, 'url' => $url];Если шаблоны ссылок строятся от разделов, при необходимости повторите выборку после привязки к разделу или воспользуйтесь генераторами адресов в вашей редакции модулей.
7. Смена DNS и запуск сервисов
Когда резолвинг указывает на новый IP, убедитесь по логам, что трафик пошёл на нужный хост, затем снова включите оплату, регистрацию и редактирование контента. Контрольный список из п. 2 прогоните ещё раз уже с боевым доменом.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии