Configuramos um ambiente wordpress em 4 servidores IIS. Estamos pensando em usar uma tarefa agendada que dispara um script de robocópia para replicar o diretório wordpress a cada 5 minutos.
Quais são as opiniões sobre essa abordagem? Alguém já usou isso ou algo parecido?
windows
iis
web-server
wordpress
joebegborg07
fonte
fonte
Respostas:
Ter 4 servidores front-end que compartilham os mesmos arquivos ao mesmo tempo e cada um é capaz de gravar sem usar algum tipo de DFS ou programa de terceiros dedicado à sincronização de diretórios seria um problema.
Com o azure, você pode pesquisar três coisas.
Armazenamento compartilhado, pode haver algum custo associado à obtenção de seu próprio armazenamento dedicado e não tenho certeza da configuração, no entanto, o Azure oferece isso. Isso garantiria que todos os seus arquivos estivessem disponíveis para cada servidor assim que eles fossem gravados.
O DFS do Azure, DFS é uma ferramenta de sincronização de diretórios baseada em janelas que funciona muito bem, também não tem certeza sobre o custo, mas a configuração pode ser um pouco mais fácil. O DFS funciona de forma assíncrona, por isso há um pequeno atraso, mas não muito.
(Vou explicar como isso seria feito e depois nunca mais falar sobre isso, porque é uma ideia horrível e falhará.) Crie um script que primeiro compare os dados nos quatro servidores e copie os dados diferenciais. Você precisaria compartilhar cada diretório com o servidor que executa o script, com permissão de configuração para que o servidor possa ler e escrever e, em seguida, solucionar problemas, solucionar problemas.
Qualquer uma das opções acima fará o trabalho, se seu trabalho depender desse trabalho, eu recomendaria que você ficasse longe da opção 3.
Dito isto, e você não está tentando gastar dinheiro, siga as etapas abaixo.
veja um programa chamado "sincronização gratuita de arquivos". Existem alguns recursos realmente bons para a versão gratuita. Acredito que haja uma versão paga, mas não tenho certeza dos aprimoramentos que obtém. Eu o usei em muitos dos meus ambientes de desenvolvimento ao tentar obter algo semelhante ao que você está procurando fazer e foi preguiçoso para configurar o DFS.
Torne apenas um servidor gravável, isso pode ser feito facilmente, configurando um URI em cada servidor que diz que, se criar um artigo, vá para ServerA, ou uma URL reescrita em seu web.config, ou seja, o WordPress é o uso de php:
cabeçalho ('Localização: http://myhost.com/mypage.php ');
Cada um deles exigirá um pouco de conhecimento de codificação e PHP, IIS.
Resposta curta, você não pode, bem, isso não é exatamente verdade. Eu tive um cliente uma vez que foi inflexível ao não usar um balanceador de carga, ele conseguiu, através de uma série de scripts do PowerShell, mover uma conexão de um servidor para outro com base na quantidade de processos de trabalho em cada caixa ou algo parecido. De qualquer maneira, é muito difícil de fazer e não vale o tempo e a energia necessários.
Veja se você não pode configurar o balanceamento de carga de rede nos servidores. Isso exigirá um IP adicional, mas sua única alteração de DNS e o tráfego podem ser distribuídos para leitura nos 3 servidores.
Boa sorte!
fonte
Obrigado por todas as sugestões pessoas.
Nossa solução foi usar uma abordagem de sincronização ponto a ponto usando uma ferramenta chamada resilio.
O Resilio nos permitiu configurar vários computadores (nesse caso, os front-ends do IIS) em um cluster de sincronização ponto a ponto. Uma pasta é selecionada em cada computador no cluster para ser usada no processo de sincronização.
O serviço resilio (serviço windows em execução em segundo plano) monitora essas pastas quanto a alterações e, se uma alteração for feita em qualquer uma das pastas especificadas nos front-ends em questão, o resilio enviará essa alteração para os outros servidores.
Espero que isso possa ajudar outras pessoas que enfrentam um problema semelhante no futuro.
fonte
Não acho que as tarefas agendadas e o Robocopy sejam uma ótima abordagem. Por causa da janela de 5 minutos, haverá momentos em que um recurso é solicitado, mas o servidor selecionado pelo balanceador de carga não o disponibilizará. Para sites amplamente estáticos, isso acontece com muito menos frequência do que com sites ocupados alterados com frequência. Uma frequência mais alta ou o uso de uma tecnologia de sincronização diferente como o Bittorrent Sync (agora chamada Resilio Sync ) melhoraria bastante isso, mas não eliminaria o problema.
Colocar o seu conteúdo wp ou talvez apenas a pasta wp-content / uploads em uma unidade compartilhada seria uma solução melhor. Outra maneira de analisar isso seria fazer com que um dos servidores hospede essa pasta e os outros a compartilhem. Com o armazenamento em cache do disco, a carga no servidor não deve ser muito maior do que os outros servidores.
Atualizar
Dê uma olhada neste artigo para obter idéias sobre o cache de páginas e este para CDN. É sobre o Nginx, então você precisará trabalhar com o IIS, mas a teoria por trás disso é válida para qualquer servidor da web.
fonte