Estou mudando os servidores do meu site, example.org. O IP do servidor antigo não pode ser usado para o novo. Eu quero substituir o servidor antigo pelo novo sem tempo de inatividade.
Existem muitos serviços diferentes em execução no example.org, não é apenas um aplicativo de servidor da Web, é também um servidor de e-mail, git server, mumble server, etc.
Minha ideia é:
- Obter dados dos servidores em sincronia, para que o novo servidor tenha dados que sejam uma cópia idêntica do servidor antigo
- Atualize o nome do domínio para que o exemplo.org aponte para o novo IP
- No servidor antigo, configure as regras do iptables para redirecionar todo o tráfego de http, https, smtp, etc. para o novo servidor. Não tenho certeza de quais regras de IP usar para isso, portanto, poderia usar alguma ajuda com isso.
Agora, isso parece bom e tudo, mas parece que haverá um problema com o SSL.
Por exemplo, se um usuário Alice navegar para example.org em seu navegador e ele for resolvido para o IP antigo, já que a alteração de DNS ainda não foi propagada para ela, o IP antigo a redirecionará para o novo IP. Eu acho que o navegador dela enlouqueceria. Ele veria o novo IP usando o certificado SSL para example.org, enquanto o example.org obviamente resolve um IP diferente, o IP antigo, já que o cache do DNS não é atualizado para Alice. Então a Alice seria saudada com um enorme aviso vermelho SSL em seu navegador dizendo que o novo IP não é do exemplo.org.
Um problema semelhante acontecerá com o servidor de correio (SSL smtp) e outros serviços em execução no example.org. Como eu resolvo isso?
Uma solução ideal seria, de alguma forma, usar o iptables, de modo que o servidor antigo procuraria o novo servidor, em vez de redirecionar o usuário para o novo servidor. Dessa forma, os usuários cujo cache DNS ainda não foi atualizado se comunicariam assim: [usuário] < --- > [servidor antigo] < --- > [novo servidor]. Eles não sabem que o novo servidor existe, para eles, parece a comunicação usual com o servidor antigo. Meu único problema com essa solução de proxy é que o novo servidor verá os IPs de origem do servidor antigo, em vez dos usuários. Isso pode quebrar muitas coisas, por exemplo, o Fail2Ban pode firewallizar o IP do servidor antigo por 10 minutos porque alguns usuários digitaram a senha de email incorreta algumas vezes, essencialmente negando acesso ao servidor de e-mail a todos os outros usuários que não possuem DNS atualizado. use o proxy.