Tenho vários servidores Web Linux conectados a um balanceador de carga e gosto de compartilhar ativos (como fotos, vídeos e outras coisas) entre esses servidores. Qual é a melhor maneira de fazer isso?
Atualmente, eu montei em um servidor de arquivos todos os servidores da Web, mas estou preocupado com a queda do tráfego. Como posso evitar que isso aconteça?
Desde já, obrigado.
linux
web-server
file-sharing
getmizanur
fonte
fonte
Respostas:
Existem várias maneiras de fazer isso com base nas suas necessidades.
Os dois primeiros são melhores se você tiver muitos arquivos novos chegando. A terceira seria a solução ideal se você não adicionar ou alterar arquivos com tanta frequência, pois os usuários receberão 404 em conteúdo estático ainda não sincronizado.
A última opção pode ser ideal de várias maneiras, mas também pode ser a mais cara das 4. Você também precisa reescrever seus sites para dar suporte a isso.
fonte
Outra ótima maneira de diminuir a carga nos servidores da Web e executar o balanceamento de carga é com o squid (ou seja, o squid3). Configure-o como um proxy reverso com armazenamento em cache. Ele armazenará em cache conteúdo estático, como imagens, etc., no HDD (padrão) ou na RAM (mais rápido e melhor), se você definir dessa maneira. É capaz de rodar robin para outros servidores squid, bem como se algum nó em particular estiver sobrecarregado.
fonte
Como geralmente a necessidade de mais servidores vem dos recursos necessários para executar sites / aps dinâmicos, considere hospedar ativos estáticos em outro subdomínio / domínio. (como static.seudominio.com)
Você pode usar outro servidor / servidores para hospedá-los. A hospedagem de arquivos estáticos não utiliza muitos recursos, portanto, você precisará de consideravelmente menos servidores para o seu conteúdo estático. Você também liberará alguns recursos nos servidores para o seu conteúdo dinâmico.
Dependendo do seu balanceador de carga, você também poderá fazer isso no mesmo domínio, decidindo qual servidor usar para qual solicitação, mas se você usar um domínio separado, poderá colocar seus ativos estáticos em uma CDN com bastante facilidade, se a necessidade deve surgir!
fonte
Uma solução para esse desafio que empreguei é ter a principal cópia de leitura / gravação dos arquivos em uma unidade NFS compartilhada, mas também manter a cópia somente leitura em cada servidor da Web, para que uma falha do host NFS coloque o acesso a arquivos no modo somente leitura, em vez de perdê-los completamente.
rsync
é executado a cada 15 minutos para manter a cópia somente leitura em cada host da web.check_link
script bash é executado a cada minuto para garantir que a montagem do NFS ainda esteja lá e, caso contrário, troque um link simbólico para a cópia somente leitura.Mais detalhes são encontrados neste artigo desde quando eu configurei este sistema pela primeira vez.
De cabeça para baixo:
Desvantagens:
fonte
Você pode considerar um banco de dados NoSQL. Eles são projetados para trabalhar em clusters, fornecer consistência eventual. Mas tenha cuidado, eles não são ÁCIDOS.
Aqui está uma introdução que o ajudará a decidir que tipo de banco de dados NoSQL você pode desejar para seu propósito.
Aqui está uma lista de recursos relacionados ao NoSQL disponível.
fonte
Por que você não tenta uma solução DFS, eles oferecem alto nível de redundância e o volume pode ser compartilhado entre quantos você desejar. O Gluster é o meu favorito e é muito fácil de instalar e configurar em qualquer distribuição Linux famosa
fonte