@Diversia

Как перенести сайт на 1С-Битрикс с минимальной недоступностью и потерей информации?

Есть сайт на 1С-Битрикс, размещенный на VPS. Сайт с посещаемость порядка 45т. пользователей в сутки. Кто-то регистрируется, добавляет определенную информацию. Размер сайта около 15гб. Пришел час перенести сайт на другой VPS к другому провайдеру, т.к. он уже задыхается, а тарифы старого провайдера ух очень кусаются. Важно максимально избежать потери информации и сделать недоступность сайта минимальной.

Предполагаю следующую схему переноса:

1. В настройках DNS домена изменить TTL для A-записей домена на минимальное значение 5-10 мин.
2. Установить и настроить BitrixEnv на новом VPS с таким же именем хоста и PTR-записью.
3. Создать новый сертификат или перенести старый (тут под вопросом, получится ли все это провернуть, т.к. используется Lets Encrypt, не будет ли конфликта? Опыта нет.).
4. Сделать резервную копии сайта и БД.
5. Восстановления сайта из бекапа на новом сервере.
6. Локально на компе через hosts прописть IP нового сервере для домена, чтобы проверить работу сайта.
7. На старом сервере изменить настройки соединения с БД, указать по IP адрес нового севера БД (предварительно открыть mysql в мир).
8. Изменить настройки DNS, указав новый IP-адрес.
9. Выполнить rsync для файлов сайта, чтобы получить наиболее свежий набор файлов.
10. Удалить старый VPS.

Подскажите пожалуйста, на сколько этот план правилен? Может есть иное решение, которое сможет корректно перенести данные с минимальным простоем сайт и потерей информации. Может кто-то имеет опыт и сможет поделиться своей схемой переноса?

update

При создании нового сертификата для домена ошибка:
# INFO: Using main config file /home/bitrix/dehydrated/config
Processing ***.ru
 + Signing domains...
 + Generating private key...
 + Generating signing request...
 + Requesting authorization for ***.ru...
 + 1 pending challenge(s)
 + Deploying challenge tokens...
 + Responding to challenge for ***.ru authorization...
 + Cleaning challenge tokens...
 + Challenge validation has failed :(
ERROR: Challenge is invalid! (returned: invalid) (result: {
  "type": "http-01",
  "status": "invalid",
  "error": {
    "type": "urn:acme:error:unauthorized",
    "detail": "Invalid response from https://***.ru/.well-known/acme-challenge/Ii3_VJ_4azFC6NskIf7hS1Q5NfDC1riIfEw8WIyaSVY [***.253.231.***]: \"\u003c!DOCTYPE html\u003e\\n\u003chtml lang=\\\"ru\\\"\u003e\\n\u003chead\u003e\\n\\t\u003cmeta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge\\\"\u003e\\n\\t\u003cmeta name=\\\"viewport\\\" content=\\\"w\"",
    "status": 403
  },
  "uri": "https://acme-v01.api.letsencrypt.org/acme/challenge/IN3t5CY_bQ_McL2QNGs5wUalGOgPaomspM6qKuAmU5Q/18512196207",
  "token": "Ii3_VJ_4azFC6NskIf7hS1Q5NfDC1riIfEw8WIyaSVY",
  "validationRecord": [
    {
      "url": "http://***.ru/.well-known/acme-challenge/Ii3_VJ_4azFC6NskIf7hS1Q5NfDC1riIfEw8WIyaSVY",
      "hostname": "***.ru",
      "port": "80",
      "addressesResolved": [
        "***.253.231.***"
      ],
      "addressUsed": "***.253.231.***"
    },
    {
      "url": "https://***.ru/.well-known/acme-challenge/Ii3_VJ_4azFC6NskIf7hS1Q5NfDC1riIfEw8WIyaSVY",
      "hostname": "***.ru",
      "port": "443",
      "addressesResolved": [
        "***.253.231.***"
      ],
      "addressUsed": "***.253.231.***"
    }
  ]
})

***.253.231.*** - IP старого сервера.
Как понимаю, коннектится к старому сайту и не может пройти валидацию.
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 2
Bedrosova
@Bedrosova
Приму стажера в команду (web, backend)
Тут нужно выбрать 1 из 2х: либо минимальная недоступность, либо минимальная потеря информации.
Я обычно предпочитаю второе:
1) Делаем бекап базы и файлов сайта без папки аплоад
2) Разворачиваем бекап на новом сервере
3) Выкачиваем папку аплоад на новый серевер через rsync - это не быстро происходит
4) Проверяем, что на новом все пашет
5) Ждем ночи с пятницы на субботу
6) Выклчаем синхронизацию с МоимСкладом, 1С или с чем-то другим, от куда сайт тянет данные.
7) Если пользователи могут загружать на сайт свои файлы, отключаем им эту возможность
8) Повторяем пункты 1-4
9) Закрываем публичку старого сайта
10) Делаем бекап базы
11) Накатываем базу на новый сайт
12) Проверяем что все пашет, открываем публичку на новом и на новом включаем обратно возможность грузить свои файлы, на старом публичка должна остаться закрытой
13) Перенаправляем домен
14) Включаем обратно синхронизации

Недоступность с пункта 9 по переделегацию домена, потерь данных нет

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

А вообще плохой этот ваш новый провайдер, если он сам и бесплатно не забирает клиента к себе. При переезде к нормальному провайдеру схема сокращается до 2х пунктов: подписать договор и предоставить доступ к старому серверу.
Ответ написан
gromdron
@gromdron
Bitrix developer
Переезжать нужно резко (вот прям 1-2 дня)? Или можно растянуть на 1-2 месяца?

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

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

2) Купил сервер чисто под веб (т.е. без базы данных).
Далее вы знаете - rsync, dns и т.п.

Таким образом у тебя 2 новых сервера (если все сделал правильно, то цена сильно не выросла), но появился еще и запас куда расти дальше
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
22 авг. 2019, в 02:23
60000 руб./за проект
22 авг. 2019, в 02:15
5000 руб./за проект
22 авг. 2019, в 01:00
300 руб./за проект