Como sincronizar dois servidores/sites da Web Apache usando RSYNC

Como sincronizar dois servidores/sites da Web Apache usando RSYNC

Existem tantos tutoriais disponíveis na web para refletir ou receber um backup de seus arquivos da web com métodos diferentes, aqui estou criando este artigo para minha referência futura e aqui estarei usando um comando muito simples e versátil de Linux Para criar um backup do seu site. Este tutorial ajudará você a sincronizar dados entre seus dois servidores da web com “Rsync““.

Sincronize dois servidores da Web Apache

O objetivo de criar um espelho do seu Servidor web com Rsync Se o seu principal servidor da web falhar, seu servidor de backup pode assumir o controle para reduzir o tempo de inatividade do seu site. Essa maneira de criar um backup de servidor da web é muito boa e eficaz para pequenas e médias empresas da web.

Vantagens de sincronizar servidores da Web

As principais vantagens da criação de um backup de servidor da Web com o RSYNC são as seguintes:

  1. O RSYNC sincroniza apenas aqueles bytes e blocos de dados que mudaram.
  2. O RSYNC tem a capacidade de verificar e excluir esses arquivos e diretórios no servidor de backup que foram excluídos do servidor da web principal.
  3. Ele cuida de permissões, proprietários e atributos especiais ao copiar dados remotamente.
  4. Ele também suporta o protocolo SSH para transferir dados de maneira criptografada, para que você tenha certeza de que todos os dados estão seguros.
  5. O RSYNC usa o método de compactação e descompressão ao transferir dados que consome menos largura de banda.

Como sincronizar dois servidores da Web Apache

Vamos prosseguir com a configuração do RSYNC para criar um espelho do seu servidor da web. Aqui, estarei usando dois servidores.

Servidor principal
  1. Endereço de IP: 192.168.0.100
  2. nome de anfitrião: servidor web.exemplo.com
Servidor de backup
  1. Endereço de IP: 192.168.0.101
  2. nome de anfitrião: cópia de segurança.exemplo.com

Etapa 1: Instale a ferramenta RSYNC

Aqui neste caso os dados do servidor da web de servidor web.exemplo.com será espelhado em cópia de segurança.exemplo.com. E para fazer isso primeiro, precisamos instalar Rsync em ambos os servidores com a ajuda do seguinte comando.

[[Email Protected]]# yum install rsync [on on chapéu vermelho Sistemas baseados] [[email protegido]]# instalação apt-get RSYNC [ON Debian sistemas baseados]

Etapa 2: Crie um usuário para executar o RSYNC

Podemos configurar o rsync com raiz Usuário, mas por razões de segurança, você pode criar um usuário sem privilégios no servidor principal da web i.e servidor web.exemplo.com Para executar o RSYNC.

[[Email Protected]]# UserAdd Tecmint [[Email Protected]]# Passwd Tecmint

Aqui eu criei um usuário “Tecmint”E atribuiu uma senha ao usuário.

Etapa 3: Teste a configuração do rsync

É hora de testar sua configuração RSYNC no seu servidor de backup (i.e. cópia de segurança.exemplo.com) e, para fazer isso, digite o seguinte comando.

[[Email Protected] www]# rsync -avzhe ssh [email protegido]:/var/www//var/www
Saída de amostra
[Email Protected] Senha: recebendo lista de arquivos incremental enviada 128 bytes recebidos 32.67K bytes 5.96k bytes/s Tamanho total é 12.78m Speedup é 389.70

Você pode ver que seu rsync agora está funcionando absolutamente bem e sincronizando dados. Eu tenho usado "/var/www" transferir; Você pode alterar a localização da pasta de acordo com suas necessidades.

Etapa 4: Automatize a sincronização com o login sem senha do SSH

Agora, terminamos as configurações do RSYNC e agora é hora de configurar um Cron para rsync. Como vamos usar o RSYNC com Ssh Protocolo, SSH estará pedindo autenticação e, se não fornecermos uma senha para Cron, ela não funcionará. Para trabalhar sem problemas, precisamos configurar Logins SSH sem senha para rsync.

Aqui neste exemplo, estou fazendo isso como raiz preservar proprietários de arquivos Além disso, você pode fazer isso para usuários alternativos também.

Primeiro, vamos gerar um público e privado Chave com os seguintes comandos no servidor de backups (i.e. cópia de segurança.exemplo.com).

[[Email Protected]]# ssh -keygen -t rsa -b 2048

Quando você insere este comando, não forneça a senha e clique em Enter para Passagem vazia para que o RSYNC CRON não precise de nenhuma senha para sincronizar dados.

Saída de amostra
Gerando par de chaves RSA pública/privada. Digite o arquivo para salvar a chave (/root/.SSH/ID_RSA): Digite a senha (vazia sem senha): Digite a mesma frase novamente: Sua identificação foi salva em/raiz/.ssh/id_rsa. Sua chave pública foi salva em /raiz /.ssh/id_rsa.bar. A principal impressão digital é: 9a: 33: a9: 5d: f4: e1: 41: 26: 57: d0: 9a: 68: 5b: 37: 9c: 23 [email protegido] A imagem aleatória da chave é: +-[[ RSA 2048] ----+ | .o. | |… | |… ++ . | | o = e * | | .Tããão o | | =.o o | | * . O | | O + | |… | +-----------------+

Agora, nosso Público e Privado Key foi gerado e teremos que compartilhá -lo com o servidor principal para que o servidor da web principal reconheça esta máquina de backup e permitirá fazer login sem perguntar qualquer senha enquanto sincroniza dados.

[[Email Protected] HTML]# SSH-COPY-ID -I /ROOT /.ssh/id_rsa.Pub [Email Protected]

Agora tente fazer login na máquina, com “ssh '[email protegido]'”, E check -in .ssh/autorizado_keys.

[[Email Protected] HTML]# [Email Protected]

Agora, terminamos de compartilhar chaves. Para saber mais profunda sobre Senha ssh menos login, Você pode ler nosso artigo sobre ele.

  1. SSH Login sem senha em 5 etapas fáceis

Etapa 5: agende Cron para automatizar a sincronização

Vamos configurar um cron para isso. Para configurar um cron, abra o arquivo Crontab com o seguinte comando.

[[Email protegido] ~]# Crontab -e

Ele abrirá o arquivo /etc /crontab para editar com seu editor padrão. Aqui neste exemplo, estou escrevendo um cron para executá -lo a cada 5 minutos para sincronizar os dados.

*/5 * * * * rsync -avzhe ssh [email protegido]:/var/www//var/www/

O comando cron e rsync acima simplesmente sincronizando “/var/www/”Da principal servidor web para um servidor de backup em tudo 5 minutos. Você pode alterar a configuração do local e da pasta de acordo com suas necessidades. Para ser mais criativo e personalizar com Rsync e Cron Comando, você pode conferir nossos artigos mais detalhados em:

  1. 10 comandos rsync para sincronizar arquivos/pastas no Linux
  2. 11 exemplos de agendamento cron no Linux