Principal / Guias / Migração VPS

Mover o seu servidor em cerca de 30 minutos

Hosts móveis soa assustador e é principalmente rsync, DNS e paciência. O truque são duas passagens: uma lenta enquanto o servidor antigo ainda roda, e uma final rápida que leva segundos.

1. Prepare o novo servidor

Ordem a Buran VPS, instalar a mesma versão do sistema operacional que o servidor antigo, e fazer o básico: Chaves SSH e firewall. Instale os mesmos serviços (nginx, PostgreSQL, Docker) nas mesmas versões — mas ainda não os inicie.

2. Primeiro passe rsync — enquanto tudo está em execução

Do novo servidor, puxe os dados. Este passe pode levar o tempo que quiser; ninguém percebe.

rsync -avz --delete \
  --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp \
  --exclude=/var/lib/postgresql \
  root@OLD_SERVER_IP:/etc /etc
rsync -avz --delete root@OLD_SERVER_IP:/var/www /var/www
rsync -avz --delete root@OLD_SERVER_IP:/root /root

Os diretórios de dados de banco de dados são excluídos de propósito — uma pasta viva PostgreSQL ou MySQL copiado arquivo por arquivo está quebrada. As bases de dados movem-se como lixo.

3. Jogue as bases de dados

No servidor antigo:

pg_dumpall -U postgres > /root/all-databases.sql
# or per database, compressed:
pg_dump -Fc -U postgres appdb > /root/appdb.dump

Puxe as descargas para o novo servidor e importe-as:

rsync -avz root@OLD_SERVER_IP:/root/all-databases.sql /root/
sudo -u postgres psql < /root/all-databases.sql

4. O interruptor — uma janela de dois minutos

Coloque o aplicativo no modo de manutenção, execute a sincronização final e inicie os serviços:

# on the old server
pg_dumpall -U postgres > /root/final.sql
# on the new server
rsync -avz --delete root@OLD_SERVER_IP:/var/www /var/www
rsync -avz root@OLD_SERVER_IP:/root/final.sql /root/
sudo -u postgres psql < /root/final.sql
systemctl enable --now nginx postgresql myapp

Primeiro teste localmente — antes de tocar em DNS:

curl -H "Host: example.com" http://127.0.0.1

5. Interruptor DNS

Altere o registro A para o novo IP e baixe o TTL para 300 segundos por dia antes — o valor antigo expira rapidamente. Dentro de minutos a maioria dos visitantes estão no novo servidor; os retardatários chegam nas próximas horas.

Certificados: executar certbot --nginx no novo servidor após a resolução do DNS. Se você usar o proxy Cloudflare, inverta o registro e reedição como de costume — os comandos estão no Guia Nginx.

6. Verificar, em seguida, a desactivação

Verifique de vários lugares: site, API, correio, trabalhos de cron, backups. Assista os registros do servidor antigo por uma hora — qualquer tráfego deixado lá significa que algo ainda aponta para o IP antigo.

tail -f /var/log/nginx/access.log
crontab -l
systemctl list-timers

Mantenha o servidor antigo por uma semana após o interruptor. Então cancele — sem drama, e um retorno fácil se você perdeu algo.

Respostas rápidas

A migração requer tempo de inatividade?

Com o método rsync bipass, o tempo de inatividade é apenas a sincronização final mais a propagação DNS — tipicamente de 2 a 10 minutos. Uma página de manutenção no servidor antigo torna-a invisível.

Os endereços IP nas configurações irão quebrar?

Qualquer IP antigo codificado com código rígido tem que mudar: nginx upstreams, configs de aplicativo, firewall allowlists. Procurar as configurações com grep para o IP antigo antes da sincronização final.

O Buran pode mover o servidor para mim?

Provisionamento é totalmente automático, e o painel lhe dá console e reinstalar acesso; migração é um trabalho padrão rsync que você pode executar em meia hora. Se algo não se encaixar, [email protected] responde em 30 minutos.

Relacionado