В этой инструкции мы расскажем, как перенести твои проекты из Hetzner и Hetzner Cloud на Vscale. В данном случае, мы рассмотрим перенос проекта между двумя Linux серверами.
Обрати внимание, что в этой статье мы рассматриваем общий вариант переноса не слишком сильно нагруженного проекта. В случае, если ты планируешь перенести к нам высоконагруженный проект, то лучше обратись к специалистам по администрированию. Это поможет переехать без боли.
Подготовка к переезду
Первым шагом перед переездом проекта является подготовка. Убедись, что у тебя есть полная резервная копия всех важных данных и конфигурационных файлов с сервера Hetzner Cloud. Это включает в себя базы данных, веб-сайты, и другие необходимые файлы.
Создание сервера на Vscale
- Войди в свой аккаунт на Vscale или зарегистрируйся.
- Создай новый сервер, выбрав подходящую конфигурацию и операционную систему (в данном случае, Linux).
Установка необходимых программ
На новом сервере, который ты создал в Vscale, установи все необходимые программы и зависимости, которые использовались на сервере Hetzner Cloud. Это может включать в себя веб-серверы, базы данных, языки программирования и все остальное, без чего не сможет работать твой проект.
Веб-сервер
Если твой проект использует веб-сервер (например, Nginx или Apache), установи соответствующий веб-сервер на свежем серваке. Ниже приведены примеры установки для Nginx и Apache. Там все достаточно просто:
- Nginx
- Apache
sudo apt-get update
sudo apt-get install -y nginx
sudo apt-get update
sudo apt-get install -y apache2
Базы данных
Если ваш проект взаимодействует с базой данных, убедитесь, что на новом сервере установлена нужная система управления базой данных (например, MySQL, PostgreSQL).
- MySQL
- PostgreSQL
sudo apt-get update
sudo apt-get install -y mysql-server
sudo apt-get update
sudo apt-get install -y postgresql
Языки программирования и среды их выполнения
Установите языки программирования (например, Node.js, Python, PHP) и соответствующие среды выполнения. Приведенные ниже команды показывают примеры для Node.js и Python:
- Node.js
- Python
sudo apt-get update
sudo apt-get install -y nodejs
sudo apt-get install -y npm
sudo apt-get update
sudo apt-get install -y python3
Перенос конфигурационных файлов
Для корректной работы проекта в Vscale, тебе нужно перенести конфигурационные файлы веб-сервера и базы данных на новый сервер.
Перенос Конфигурации Nginx:
На Исходном Сервере:
- Найди основной конфигурационный файл Nginx. Обычно он находится в
/etc/nginx/nginx.conf
. - Также проверьте наличие дополнительных конфигураций сайтов, расположенных в
/etc/nginx/sites-available
и символических ссылок на них в/etc/nginx/sites-enabled
. - Сделай архив этих файлов. Например так:
tar -czvf nginx-configs.tar.gz /etc/nginx/nginx.conf /etc/nginx/sites-available /etc/nginx/sites-enabled
На Целевом Сервере:
- Перенеси файл архива
nginx-configs.tar.gz
на целевой сервер. - Распакуй архив в соответствующую директорию, например:
tar -xzvf nginx-configs.tar.gz -C /etc/nginx/
- После распаковки проверь и при необходимости отредактируй конфигурационные файлы, особенно если на целевом сервере есть отличия в путях или настройках.
- Перезапусти Nginx для применения новых конфигураций:
sudo systemctl restart nginx
Перенос Конфигурации MySQL:
На Исходном Сервере:
- Найди основной конфигурационный файл MySQL, который обычно находится в
/etc/mysql/my.cnf
или/etc/my.cnf
. - Сделай копию этого файла. Например:
cp /etc/mysql/my.cnf /path/to/backup/
Экспорт баз данных:
- Экспортируй необходимые базы данных. Это можно сделать с помощью
mysqldump
на исходном сервере. Например:Замениmysqldump -u [username] -p[password] [database_name] > database_name.sql
[username]
,[password]
, и[database_name]
на соответствующие значения.
На Целевом Сервере:
Перенеси резервную копию файла
my.cnf
и дампы баз данных на целевой сервер.Размести файл
my.cnf
в соответствующем месте (например,/etc/mysql/my.cnf
).Импортируй базы данных с помощью
mysql
:mysql -u [username] -p[password] [database_name] < database_name.sql
Снова замени
[username]
,[password]
, и[database_name]
.Перезапусти MySQL:
sudo systemctl restart mysql
Общие Советы:
- Перед переносом убедись, что версии Nginx и MySQL на обоих серверах совместимы. Сделать это можно с помощью команд
nginx -v
иmysql --version
. - Люди делятся на два вида: те, кто не делает бэкапы, и те, кто уже делает. Всегда делай бэкапы перед заменой конфигурационных файлов.
Для MySQL важно, чтобы версии были совместимы, особенно с точки зрения формата хранения данных и синтаксиса команд. Несовместимость версий может привести к проблемам при импорте баз данных.
Перенос данных
Теперь перенеси резервные копии данных с сервера Hetzner Cloud на новый сервер на Vscale. Это можно сделать с использованием инструментов, таких как rsync
для копирования файлов.
Пример использования rsync
для копирования файлов:
rsync -avz --progress /path/to/files user@x.x.x.x:/destination/path
Замени /path/to/files на путь к вашим резервным копиям, user на твое имя пользователя, x.x.x.x на IP-адрес твоего нового сервера в Vscale, и /destination/path на путь к папке на новом сервере.
А что после переезда?
После переезда мы настоятельно рекомендуем вам проверить, что все работает так, как должно работать и убедиться, что ничего не сломалось. Универсальных способов нет, но вот несколько советов:
Проверь доступность веб-сайта: Открой свой веб-браузер и убедись, что твой веб-сайт загружается корректно. Проверь все страницы и функции.
Тестирование базы данных: Если твой проект использует базу данных, удостоверься, что соединение с базой данных установлено, и запросы выполняются без ошибок.
Проверь важные функции приложения: Проверь ключевые функции твоего приложения, такие как формы, обработка платежей, авторизация и другие.
Логирование: Проверь логи твоего приложения и веб-сервера на наличие ошибок или предупреждений.
Если все тесты проходят успешно, ты можешь считать переезд завершенным. На этом этапе, у тебя должен быть полностью функциональный проект на новом сервере, и ты можешь переключить трафик с предыдущего сервера на новый.
Добро пожаловать в Vscale. Надеемся, что тебе понравится 💙.