Como hospedar um site do Wordpress em vários servidores devido a problemas de siteload geográfico?

2

O site Wordpress está atualmente hospedado nos EUA, onde 40% do nosso público-alvo é. O restante dos visitantes está vindo do Oriente Médio, Austrália, Rússia, China, Cingapura, Reino Unido, Suíça, Kazakstan ... em todo o mapa.

Com todo o armazenamento em cache no lugar (não CDN), ele ainda é pouco carregado na Ásia / Oceania e tem problemas de velocidade na Europa.

Posso simplesmente configurar vários servidores e criar vários registros A que apontam para diferentes servidores em diferentes regiões e assumir que um visitante da Austrália será servido no servidor australiano?

Alguma dica?

    
por Alex 27.08.2013 / 23:28

3 respostas

3

Os problemas com a distribuição geográfica do WordPress, como você verá, giram em torno do banco de dados MySQL.

Existem basicamente duas maneiras de arquitetar isso:

Ler réplicas

Nesta arquitetura, você executa seu frontend LAMP com o WordPress em vários locais geográficos, cada um dos quais tem uma réplica somente leitura (escrava) do banco de dados mestre do MySQL. Você precisará usar algo como MySQL Proxy para direcionar as operações de gravação de volta para o mestre, como o WordPress não suporta originalmente usando uma conexão de banco de dados diferente para leituras versus escritas.

O grande problema com essa configuração é que, se o seu master ficar inativo, você não poderá fazer alterações (por exemplo, sem novas postagens ou comentários). Portanto, o mestre provavelmente deve estar em cluster ou protegido (por exemplo, usando o Amazon RDS Multi-AZ). As gravações de banco de dados também são atrasadas devido à latência da rede entre o frontend LAMP e o mestre MySQL remoto.

Multi-mestre

Nesta arquitetura, você executa o seu frontend LAMP com o WordPress em vários locais geográficos, cada um dos quais tem um banco de dados replicado multi-master, usando algo como MariaDB Galera ou uma solução MySQL equivalente (se você puder encontrar uma). Você precisa ter pelo menos três mestres se seguir esse caminho.

Como não há um único ponto de falha, realmente não importa se um mestre desce (contanto que eles NÃO caiam ao mesmo tempo; essa situação requer uma intervenção manual para recuperar).

O problema é que as gravações levam muito mais tempo, pois precisam ser replicadas para todos os vários mestres. Assim, as pessoas podem notar um atraso de alguns segundos ao fazer qualquer coisa que grava no banco de dados, como comentar ou escrever um novo post. Na prática, esse atraso não é tão significativo, pois os usuários já esperam atrasos quando enviam informações nesses contextos.

Se você tiver três ou mais localizações geográficas nas quais você vai implantar, eu vou em frente e passo o esforço de ir para vários mestres. Se você tiver apenas dois locais, poderá obter uma réplica e um proxy de leitura por enquanto.

    
por 28.08.2013 / 01:16
1

Estou assumindo que, desde que esta questão tenha sido marcada como amazon-web-services, o seu site Wordpress está sendo executado em instâncias do Amazon AWS EC2. Se assim for, você pode usar o produto Route53 da Amazon para servir registros DNS geográficos. Você pode encontrar um tutorial detalhado aqui . Existem outros provedores de DNS que oferecem suporte a registros de DNS geográficos, como Dyn , mas observe que esse será um recurso premium pelo qual você precisará pagar.

    
por 28.08.2013 / 00:21
-1

Can I simply setup multiple servers and create multiple A records that point to different servers in different regions and assume that a visitor from Australia will be served form australian server?

não, não é possível. Nesse caso, seria algo como round robin. No seu caso, CDN seria a melhor escolha, imho.

    
por 27.08.2013 / 23:34