É possível redirecionar para outro servidor separado geograficamente com base no nome da pasta no URL?

1

O que estou procurando é direcionar os visitantes a servidores separados geograficamente com base em sua escolha de idioma.

Nossos URLs são estruturados como mydomain.com/en e mydomain.com/th (tailandês). Como agora, tudo está hospedado no mesmo servidor. No entanto, para os visitantes que estão optando pela linguagem th , é preferível que os sirvamos a partir de um servidor que esteja localizado na Tailândia. A velocidade de carregamento da página para visitantes tailandeses melhora significativamente desta forma.

Minha plataforma é Apache, Linux, MySQL - a pilha LAMP regular. Então ... é possível configurar o Apache de forma a redirecionar todo o tráfego da maneira que eu disse acima? Tenha em mente que o nome de domínio não pode ser alterado nem podemos usar subdomínios. Tem que estar nessa pasta como formato.

Obrigado,
m ^ e

    
por miCRoSCoPiCeaRthLinG 05.07.2011 / 05:51

3 respostas

3

Se você pudesse redirecionar as pessoas para subdomínios localizados após o fato, isso funcionaria:

RewriteEngine on
RewriteRule ^/th(.*)$ http://th.example.com$1 [R,L]
RewriteRule ^/en(.*)$ http://en.example.com$1 [R,L]

Infelizmente, considerando que você está usando um único nome de host, isso significa que você está limitado a coisas no DNS (GeoIP) e não consegue lidar com nada na parte do caminho do URL, então você não pode fazer decisões baseadas nele.

Basicamente, você está ferrado, dadas as restrições que você forneceu. Explique àqueles que fazem as regras que não importa o quanto eles batam os pés e façam beicinho, você não pode mudar as leis da Física da Internet. Pessoalmente, eu não vejo o que é tão feio sobre http://th.example.com/ ...

    
por 05.07.2011 / 06:06
3

Esta é talvez uma abordagem um pouco errática, mas considere o uso de um servidor DNS com geolocalização - uma sugestão é GeoIPDNS . no garfo de substituição do TinyDNS.

A idéia é que você hospede um servidor de nomes autoritativo em sua máquina e, com base no IP, ele redireciona automaticamente os usuários para um servidor ou outro. A máquina do usuário deve armazenar em cache a solicitação de DNS, para que a pesquisa seja feita apenas de vez em quando (ou seja, não em todas as solicitações de página).

Você pode hospedar as versões / en e / th em ambos os servidores, e a solução DNS enviará os usuários para o servidor geograficamente correto. Os usuários ainda podem escolher qual versão do site desejam visualizar, e a geolocalização é transparente sem aumentar a latência, exceto pela solicitação inicial de DNS (claro, você hospedaria seu DNS em ambos os servidores para fornecer um retorno). / p>     

por 05.07.2011 / 06:31
-1

Alias a pasta "/ th" através de um servidor proxy reverso para o endereço IP do servidor tailandês.

O próprio Apache seria o proxy reverso, a propósito ...

Veja mais informações aqui: link

Isso faria com que

www.example.com/th/hi-there

é convertido pelo apache para

thai.ip.add.ress/hi-there

E é completamente transparente para o usuário, sem redirecionamentos ou qualquer coisa assim.

    
por 05.07.2011 / 08:28